github.com/emc-advanced-dev/unik@v0.0.0-20190717152701-a58d3e8e33b7/README.md (about)

     1  <h1 align="center">
     2      <img src="https://i.imgur.com/v5eH7HV.png" alt="Build and run unikernels" width="150" height="184">
     3  </h1>
     4  
     5  <h4 align="center">A platform for automating unikernel & MicroVM compilation and deployment</h4>
     6  <BR>
     7  
     8  
     9  
    10  UniK (pronounced you-neek) is a tool for compiling application sources into unikernels (lightweight bootable disk images) and MicroVM rather than binaries.
    11  
    12  UniK runs and manages instances of compiled images across a variety of cloud providers as well as locally.
    13  
    14  UniK utilizes a simple docker-like command line interface, making building unikernels and MicroVM as easy as building containers.
    15  
    16  UniK is built to be easily extensible, allowing (and encouraging) adding support for unikernel/MicroVM [compilers](docs/compilers/README.md) and cloud [providers](docs/providers/README.md). See [architecture](docs/architecture.md) for a better understanding of UniK's pluggable code design.
    17  
    18  To learn more about the motivation behind project UniK, read our [blog](https://medium.com/solo-io/unik-build-and-run-unikernels-with-ease-2c7344115cbb) post, or [watch](https://www.youtube.com/watch?v=wcZWg3YtvnY) session ([Slides](http://www.slideshare.net/IditLevine/unik-slides)).
    19  We also encourage you to read [this](https://medium.com/solo-io/worried-about-iot-ddos-think-unikernels-fae2a9c5c51b) blog about IoT Security.<BR><BR>
    20  To stay up-to-date on UniK, follow us at [twitter](https://twitter.com/soloio_inc) and join us on our [slack channel](http://slack.solo.io).
    21  
    22  ---
    23  
    24  ### *Changelog*:
    25  
    26  Due to the frequency with which features and patches are applied to UniK, we have decided to list these changes by date in our [unversioned changelog](docs/changelog.md).
    27  
    28  ---
    29  
    30  ### Documentation
    31  - **Installation**
    32    - [Install UniK](docs/install.md)
    33    - [Configuring the daemon](docs/configure.md)
    34    - [Launching the InstanceListener](docs/instance_listener.md)
    35  - **Getting Started**
    36    - [Pull and run a unikernel without building](docs/getting_started_pull.md) on Virtualbox with UniK
    37    - [Run your first Go MicroVM](docs/compilers/firecracker.md) on Firecracker with Unik
    38    - [Run your first Go unikernel](docs/getting_started.md) on Virtualbox with UniK
    39    - [Run your first Node.js unikernel](docs/getting_started_node.md) on Virtualbox with UniK
    40    - [Run your first Python3 unikernel](docs/getting_started_python3.md) on Virtualbox with UniK
    41    - [Run your first Java unikernel](docs/getting_started_java.md) on Virtualbox with UniK
    42    - [Run your first C++ unikernel](docs/getting_started_cpp.md) on Virtualbox with UniK
    43  - **User Documenation**
    44    - Using the [command line interface](docs/cli.md)
    45    - Compiling [Node.js](docs/compilers/rump.md#nodejs) Applications to Unikernels
    46    - Compiling [Go](docs/compilers/rump.md#golang) Applications to Unikernels
    47    - Compiling [Java](docs/compilers/osv.md#java) Applications to Unikernels (OSv)
    48    - Compiling [Node.js](docs/compilers/osv.md#nodejs) Applications to Unikernels (OSv)
    49    - Compiling [C/C++](docs/compilers/osv.md#native) Applications to Unikernels (OSv)
    50    - Compiling [C/C++](docs/compilers/includeos.md) Applications to Unikernels
    51    - Compiling [Python3](docs/compilers/rump.md#python-3) Applications to Unikernels
    52  - **Developer Documentation**
    53    - Adding [compiler](docs/compilers/README.md) support
    54    - Adding [provider](docs/providers/README.md) support
    55  
    56  ---
    57  
    58  ### Supported unikernel types:
    59  * **Firecracker**: UniK supports compiling GO code into [Firecracker](https://firecracker-microvm.github.io/) MicroVMs
    60  * **rump**: UniK supports compiling [Python](docs/compilers/rump.md#python-3), [Node.js](docs/compilers/rump.md#nodejs) and [Go](docs/compilers/rump.md#golang) code into [rumprun](docs/compilers/rump.md) unikernels
    61  * **OSv**: UniK supports compiling Java, Node.js, C and C++ code into [OSv](http://osv.io/) unikernels
    62  * **IncludeOS**: UniK supports compiling C++ code into [IncludeOS](https://github.com/hioa-cs/IncludeOS) unikernels
    63  * **MirageOS**: UniK supports compiling [OCaml](docs/compilers/mirage.md), code into [MirageOS](https://mirage.io) unikernels
    64  
    65  *We are looking for community help to add support for more unikernel types and languages.*
    66  
    67  ### Supported providers:
    68  * [Firecracker](https://firecracker-microvm.github.io/)
    69  * [Virtualbox](docs/providers/virtualbox.md)
    70  * [AWS](docs/providers/aws.md)
    71  * [Google Cloud](docs/providers/gcloud.md)
    72  * [vSphere](docs/providers/vsphere.md)
    73  * [QEMU](docs/providers/qemu.md)
    74  * [UKVM](docs/providers/ukvm.md)
    75  * [Xen](docs/providers/xen.md)
    76  * [OpenStack](docs/providers/openstack.md)
    77  * [Photon Controller](docs/providers/photon.md)
    78  
    79  ### Roadmap:
    80  * extend unik to build & deploy [Kata Containers](https://katacontainers.io)
    81  * extend unik to build & deploy [FreeRTOS](https://aws.amazon.com/freertos/)
    82  * extend unik to build & deploy [LinuxKit](https://github.com/linuxkit/linuxkit)
    83  * dynamic volume and application arguments configuration at instance runtime (rather than at compile time)
    84  * expanding test coverage
    85  * better code documentation
    86  * multi-account support per provider (i.e. multiple AWS accounts/regions, etc.)
    87  * migrate from [martini](https://github.com/go-martini/martini) to [echo](https://github.com/labstack/echo)
    88  
    89  UniK is still experimental! APIs and compatibility are subject to change. We are looking for community support to help identify potential bugs and compatibility issues. Please open a Github issue for any problems you may experience, and join us on our [slack channel](http://slack.solo.io)
    90  
    91  ---
    92  
    93  ### Thanks
    94  
    95  **UniK** would not be possible without the valuable open-source work of projects in the unikernel community. We would like to extend a special thank-you to [Firecracker](https://firecracker-microvm.github.io/), [rumprun](https://github.com/rumpkernel), [deferpanic](https://github.com/deferpanic), [cloudius systems](https://github.com/cloudius-systems), [mirageos](https://mirage.io) and [includeOS](http://www.includeos.org/).
    96  
    97  <!--(for contributors): push images: CONTAINERVER=0.1 for i in $(docker images | grep projectunik/ | awk '{print $1}'); do docker push $i:$CONTAINERVER; done-->