I've been building kern — a CLI that replaces Docker with unikernels.
The idea is simple: instead of packaging your app in a container with a full Linux OS, kern compiles it into a single binary that contains exactly what your app needs and nothing else.
The results are significant:
→ ~10ms boot time (Docker: 800ms–2s)
→ ~50 syscalls exposed (Docker: ~400)
→ No Docker daemon. No kraft. Just QEMU.
The build pipeline is entirely kraft-free:
• skopeo downloads the Unikraft kernel from the OCI registry
• buildah builds the rootfs without a Docker daemon
• cpio packs the initramfs
• objcopy fuses everything into a single .uki binary
• ed25519 signs the image automatically
• QEMU KVM runs it directly
Every build is signed with ed25519 and generates an SBOM (SPDX-2.3) by default. No opt-in.
Currently supports Node.js, Go, Rust and Python. Multi-service deployments work with kern compose, which sets up a real bridge network with DHCP between unikernels so services can talk to each other by name.
There's also an official GitHub Action:
uses: Kern-Unikernel/action@v1
It's open source, MIT licensed, and still early — but already working in production on Linux with KVM.
🔗 Website: https://kern-vert.vercel.app
🔗 GitHub: https://github.com/Kern-Unikernel/Kern-Unikernel
Feedback welcome — especially from anyone who has dealt with container overhead in production.
Top comments (0)