Jerboa is a unikernel engine for building, running, and orchestrating VM-based application images.
It is built around two binaries:
jerboa: CLIjerboad: Linux daemon
The current project state is best described as public beta:
- the core architecture is real and coherent
- the feature surface is already meaningful
- the operational matrix is still opinionated and not friction-free
What exists today:
- image builds from static ELF binaries and source projects
- build drivers for
go,node,python,rust, andraw - VM execution on QEMU and Firecracker
- managed bridge networks with TAP-backed guests
- internal DNS
- volumes
- compose stacks
- daemon-side metrics, traces, stats, and dashboard
- Windows support through a dedicated WSL2 distro hosting the daemon
What this is not yet:
- a general-purpose Docker replacement
- a zero-friction cross-platform runtime
- a fully stable networking/runtime surface for all workloads
Jerboa runs in two supported modes:
- Linux host:
jerboatalks to a nativejerboad - Windows host:
jerboa.exetalks tojerboadrunning inside a dedicated WSL2 distro managed byjerboa daemon
Important:
jerboadis Linux-only- native VM execution depends on Linux virtualization support
- Windows support is WSL2-based, not a native Windows daemon port
sudo scripts/install.sh
jerboa status
jerboa build examples/hello --name hello --lang go
jerboa run hello:latest --attachjerboa daemon install
jerboa daemon start
jerboa status
jerboa build examples/hello --name hello --lang go
jerboa run hello:latest --attachNew to unikernels? jerboa init scaffolds a commented unikernel.toml,
builds run preflight checks that catch boot failures before they happen, and
jerboa build --smoke boot-tests the image as part of the build. Start with
Build Concepts.
- Getting Started
- Build Concepts — what a unikernel build actually does, explained from zero
- CLI Reference
- Compose
- Architecture
- Observability
- Troubleshooting — common errors, decoded
The short version:
- port publishing requires
--network - TCP forwarding works today
- UDP mappings are accepted syntactically but are not forwarded yet
- the Windows path depends on WSL2
- the public surface is broader than the amount of battle-hardening so far
cmd/jerboa/- CLIcmd/jerboad/- daemoninternal/vm/- VM lifecycle and hypervisor backendsinternal/image/- image store and build pathinternal/network/- bridge, TAP, IPAM, and port forwardinginternal/compose/- compose parser and orderinginternal/wslboot/,internal/wsldistro/- Windows/WSL supporttests/integration/,tests/e2e/- higher-level testskernel/- Nanos-derived kernel tree and tooling
Common commands:
make build
make test
make test-integration
make e2e
make lintFor contribution expectations, see CONTRIBUTING.md.
For reporting guidance, see SECURITY.md.
This repository is licensed under Apache-2.0.
See:
The kernel/ subtree keeps its own notices and license file where applicable.