jerboa

module
v0.51.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2026 License: Apache-2.0

README

Jerboa

Jerboa is a unikernel engine for building, running, and orchestrating VM-based application images.

It is built around two binaries:

  • jerboa: CLI
  • jerboad: 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

Current Status

What exists today:

  • image builds from static ELF binaries and source projects
  • build drivers for go, node, python, rust, and raw
  • VM execution on QEMU and Firecracker
  • managed bridge networks with TAP-backed guests
  • internal DNS
  • volumes
  • compose stacks
  • replicated services
  • 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

Platform Model

Jerboa runs in two supported modes:

  • Linux host: jerboa talks to a native jerboad
  • Windows host: jerboa.exe talks to jerboad running inside a dedicated WSL2 distro managed by jerboa daemon

Important:

  • jerboad is Linux-only
  • native VM execution depends on Linux virtualization support
  • Windows support is WSL2-based, not a native Windows daemon port

Quick Start

Linux
sudo scripts/install.sh
jerboa status
jerboa build examples/hello --name hello --lang go
jerboa run hello:latest --attach
Windows
jerboa daemon install
jerboa daemon start
jerboa status
jerboa build examples/hello --name hello --lang go
jerboa run hello:latest --attach

Documentation

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

Repository Layout

  • cmd/jerboa/ - CLI
  • cmd/jerboad/ - daemon
  • internal/vm/ - VM lifecycle and hypervisor backends
  • internal/image/ - image store and build path
  • internal/network/ - bridge, TAP, IPAM, and port forwarding
  • internal/service/ - replicated services
  • internal/compose/ - compose parser and ordering
  • internal/wslboot/, internal/wsldistro/ - Windows/WSL support
  • tests/integration/, tests/e2e/ - higher-level tests
  • kernel/ - Nanos-derived kernel tree and tooling

Development

Common commands:

make build
make test
make test-integration
make e2e
make lint

For contribution expectations, see CONTRIBUTING.md.

Security

For reporting guidance, see SECURITY.md.

License

This repository is licensed under Apache-2.0.

See:

The kernel/ subtree keeps its own notices and license file where applicable.

Directories

Path Synopsis
cmd
installer command
Jerboa Windows installer — enables WSL2, imports the jerboa distro, and installs the jerboa CLI into %LOCALAPPDATA%\Programs\Jerboa\jerboa.exe.
Jerboa Windows installer — enables WSL2, imports the jerboa distro, and installs the jerboa CLI into %LOCALAPPDATA%\Programs\Jerboa\jerboa.exe.
jerboa command
jerboa-smoke command
jerboad command
examples
hello command
voltest command
voltest — HTTP server that persists messages to a mounted volume.
voltest — HTTP server that persists messages to a mounted volume.
webenv command
internal
api
metrics
Package metrics provides Prometheus metrics collection for the unikernel engine daemon.
Package metrics provides Prometheus metrics collection for the unikernel engine daemon.
package
Package package manages pre-built runtime packages for unikernel images.
Package package manages pre-built runtime packages for unikernel images.
slogformat
Package slogformat provides a structured JSON log handler for the unikernel daemon.
Package slogformat provides a structured JSON log handler for the unikernel daemon.
tracing
Package tracing provides OpenTelemetry tracing for the unikernel engine daemon.
Package tracing provides OpenTelemetry tracing for the unikernel engine daemon.
ui
vm
volume
Package volume manages persistent virtio-blk disk volumes for unikernel VMs.
Package volume manages persistent virtio-blk disk volumes for unikernel VMs.
wslboot
Package wslboot bootstraps the jerboad daemon inside WSL2 from the Windows client.
Package wslboot bootstraps the jerboad daemon inside WSL2 from the Windows client.
wsldistro
Package wsldistro manages the dedicated jerboa WSL2 distribution: a versioned, self-contained Linux environment (jerboad + qemu + firecracker + kernel toolchain) imported via `wsl --import`, the way Docker Desktop ships its own distro.
Package wsldistro manages the dedicated jerboa WSL2 distribution: a versioned, self-contained Linux environment (jerboad + qemu + firecracker + kernel toolchain) imported via `wsl --import`, the way Docker Desktop ships its own distro.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL