https://github.com/ilackarms/unik
The Unikernel Compilation and Deployment Platform
https://github.com/ilackarms/unik
aws containers golang includeos microservice mirageos openstack osv rumprun unikernel virtualbox vm vsphere
Last synced: about 1 year ago
JSON representation
The Unikernel Compilation and Deployment Platform
- Host: GitHub
- URL: https://github.com/ilackarms/unik
- Owner: ilackarms
- License: apache-2.0
- Created: 2017-03-15T13:42:36.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-24T16:36:04.000Z (almost 9 years ago)
- Last Synced: 2025-01-23T01:31:05.911Z (about 1 year ago)
- Topics: aws, containers, golang, includeos, microservice, mirageos, openstack, osv, rumprun, unikernel, virtualbox, vm, vsphere
- Language: Go
- Size: 36.1 MB
- Stars: 4
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 
UniK (pronounced you-neek) is a tool for compiling application sources into unikernels (lightweight bootable disk images) rather than binaries.
UniK runs and manages instances of compiled images across a variety of cloud providers as well as locally on Virtualbox.
UniK utilizes a simple docker-like command line interface, making building unikernels as easy as building containers.
UniK is built to be easily extensible, allowing (and encouraging) adding support for unikernel [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.
To learn more about the motivation behind project UniK, read our [blog](https://github.com/ilackarms/unik/wiki/UniK:-Build-and-Run-Unikernels-with-Ease) post, or [watch](https://www.youtube.com/watch?v=wcZWg3YtvnY) session ([Slides](http://www.slideshare.net/IditLevine/unik-slides)).
We also encourage you to read [this](https://github.com/ilackarms/unik/wiki/Worried-about-IoT-DDoS%3F-Think-Unikernels) blog about IoT Security.
To stay up-to-date on UniK, follow us [@ProjectUnik](https://twitter.com/ProjectUniK) and join us on our [slack channel](http://project-unik.io).
---
### *Changelog*:
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).
---
### Documentation
- **Installation**
- [Install UniK](docs/install.md)
- [Configuring the daemon](docs/configure.md)
- [Launching the InstanceListener](docs/instance_listener.md)
- **Getting Started**
- [Pull and run a unikernel without building](docs/getting_started_pull.md) on Virtualbox with UniK
- [Run your first Go unikernel](docs/getting_started.md) on Virtualbox with UniK
- [Run your first Node.js unikernel](docs/getting_started_node.md) on Virtualbox with UniK
- [Run your first Python3 unikernel](docs/getting_started_python3.md) on Virtualbox with UniK
- [Run your first Java unikernel](docs/getting_started_java.md) on Virtualbox with UniK
- [Run your first C++ unikernel](docs/getting_started_cpp.md) on Virtualbox with UniK
- **User Documenation**
- Using the [command line interface](docs/cli.md)
- Compiling [Node.js](docs/compilers/rump.md#nodejs) Applications to Unikernels
- Compiling [Go](docs/compilers/rump.md#golang) Applications to Unikernels
- Compiling [Java](docs/compilers/osv.md#java) Applications to Unikernels (OSv)
- Compiling [Node.js](docs/compilers/osv.md#nodejs) Applications to Unikernels (OSv)
- Compiling [C/C++](docs/compilers/osv.md#native) Applications to Unikernels (OSv)
- Compiling [C/C++](docs/compilers/includeos.md) Applications to Unikernels
- Compiling [Python3](docs/compilers/rump.md#python-3) Applications to Unikernels
- **Developer Documentation**
- Adding [compiler](docs/compilers/README.md) support
- Adding [provider](docs/providers/README.md) support
---
### Supported unikernel types:
* **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
* **OSv**: UniK supports compiling Java, Node.js, C and C++ code into [OSv](http://osv.io/) unikernels
* **IncludeOS**: UniK supports compiling C++ code into [IncludeOS](https://github.com/hioa-cs/IncludeOS) unikernels
* **MirageOS**: UniK supports compiling [OCaml](docs/compilers/mirage.md), code into [MirageOS](https://mirage.io) unikernels
*We are looking for community help to add support for more unikernel types and languages.*
### Supported providers:
* [Virtualbox](docs/providers/virtualbox.md)
* [AWS](docs/providers/aws.md)
* [Google Cloud](docs/providers/gcloud.md)
* [vSphere](docs/providers/vsphere.md)
* [QEMU](docs/providers/qemu.md)
* [UKVM](docs/providers/ukvm.md)
* [Xen](docs/providers/xen.md)
* [OpenStack](docs/providers/openstack.md)
* [Photon Controller](docs/providers/photon.md)
### Roadmap:
* dynamic volume and application arguments configuration at instance runtime (rather than at compile time)
* expanding test coverage
* better code documentation
* multi-account support per provider (i.e. multiple AWS accounts/regions, etc.)
* migrate from [martini](https://github.com/go-martini/martini) to [echo](https://github.com/labstack/echo)
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://project-unik.io)
---
### Thanks
**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 [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/).