Homepage · Documentation · Report Bug · Feature Request · Join Our Discord · X.com
Instantaneous Cold-boots ⚡
Modular Design ?
Optimized for Performance
Flexible Architecture Support
Broad Language and Application Support
Cloud and Edge Compatibility ☁️
Reduced Attack Surface ?️
Developer Friendly
Efficient Resource Utilization ?
Community-Driven Development
Install the companion command-line client kraft:
# Install on macOS, Linux, and Windows:
curl -sSfL https://get.kraftkit.sh | shSee additional installation instructions.
Run your first ultra-lightweight unikernel virtual machine:
kraft run unikraft.org/helloworld:latest
View its status and manage multiple instances:
kraft ps --all
View the community image catalog in your CLI for more apps:
kraft pkg ls --update --apps
Or browse through one of the many starter example projects.
Unikraft is a radical, yet Linux-compatible with effortless tooling, technology for running applications as highly optimized, lightweight and single-purpose virtual machines (known as unikernels).
In today's computing landscape, efficiency is paramount. Unikraft addresses this need with its modular design, enabling developers to create customized, lightweight operating systems tailored to specific application requirements. By trimming excess overhead and minimizing attack surfaces, Unikraft enhances security and performance in cloud and edge computing environments.
Unikraft's focus on optimization ensures that applications run smoothly, leveraging platform-specific optimizations to maximize efficiency. With support for various hardware architectures and programming languages, Unikraft offers flexibility without compromising performance. In a world where resources are precious, Unikraft provides a pragmatic solution for streamlined, high-performance computing.
There are two ways to get started with Unikraft:
(Recommended) Using the companion command-line tool kraft (covered below).
Using the GNU Make-based system. For this, see our advanced usage guide.
You can install the companion command-line client kraft by using the interactive installer:
# Install on macOS, Linux, and Windows:
curl -sSfL https://get.kraftkit.sh | shbrew install unikraft/cli/kraftkit
Use the interactive installer or see additional installation instructions.
Try out one of the examples in GitHub Codespaces:
You can use the pre-built development container environment which has all dependencies necessary for building and trying out Unikraft in emulation mode.
Attach your working directory on your host as a mount path volume mapped to
/workspace, e.g.:
docker run --platform linux/x86_64 -it --rm -v $(pwd):/workspace --entrypoint bash kraftkit.sh/base:latestThe above command will drop you into a container shell.
Type exit or Ctrl+D to quit.
Running unikernels with kraft is designed to be simple and familiar.
To test your installation of kraft, you can run the following:
kraft run unikraft.org/helloworld:latest
Building unikernels is also designed to be straightforward. Build your first
unikernel by simply placing a Kraftfile into your repo and pointing it to your
existing Dockerfile:
spec: v0.6
runtime: base:latest
rootfs: ./Dockerfile
cmd: ["/path/to/my-server-app"]Learn more about the syntax of a
Kraftfile.
Once done, invoke in the context of your working directory:
kraft run .
You can find some common project examples below:
| Example | |
|---|---|
| Simple "Hello, world!" application written in C | |
| Simple "Hello, world!" application written in C++ | |
Simple NodeJS 18 HTTP Web Server with http |
|
Simple Go 1.21 HTTP Web Server with net/http |
|
| Simple Flask 3.0 HTTP Web Server | |
Simple Python 3.10 HTTP Web Server with http.server.HTTPServer |
Find more examples and applications in our community catalog!
The creators of Unikraft have built KraftCloud: a next generation cloud platform powered by technology intended to work in millisecond timescales.
| ✅ | Millisecond Scale-to-Zero | ✅ | Millisecond Autoscale | ✅ | Millisecond Cold Boots |
|---|---|---|---|---|---|
| ✅ | Higher Throughput | ✅ | Much Lower Cloud Bill | ✅ | HW-Level Isolation |
| ✅ | On-Prem or Cloud-Prem | ✅ | Works with Docker & K8s | ✅ | Terraform Integration |
Unikraft is open-source and licensed under BSD-3-Clause and the copyright of its
authors. If you would like to contribute:
This ensures that users, distributors, and other contributors can rely on all the software related to Unikraft being contributed under the terms of the License. No contributions will be accepted without following this process.
Afterwards, navigate to the contributing guide to get started. See also Unikraft's coding conventions.
Unikraft Open-Source Project source code and its affiliated projects source code is licensed under a BSD-3-Clause if not otherwise stated.
For more information, please refer to COPYING.md.
Unikraft is a member of the Linux Foundation and is a Xen Project Incubator Project. The Unikraft name, logo and its mascot are trademark of Unikraft GmbH.