everybit
We're exploring how applications can be built and deployed as unikernels - small, bootable machine images where each application runs as the sole process on a dedicated Linux kernel.
The result is an isolated, single-purpose VM that boots directly into your application, executes as a single process, and leaves no residual state when it exits.
A Quick Note:
This project is intentionally experimental. We're building small demos and tools to understand what's practical, what's not, and where this model makes sense. Everything here is about learning by building and sharing that process openly.
Try the Demo:
Imli transforms your Python and Go applications into isolated unikernel VMs. Each app gets its own Linux kernel. No container escapes possible.
-
Python with Pip:
Bundle your script, the interpreter, and any pip package
(
colorama,requests,flask) into a bootable image. - Go with Modules: Compile to a static binary, boot it as the kernel's init process. Tiny images (~2MB), 21ms cold-start.
-
Networking Built-in:
Serve HTTP with
--port 8080:80. Your unikernel becomes a web server. -
Multi-Service Orchestration:
Define services in
imli.yaml, deploy withimli deploy up. Like Docker Compose, but with VM isolation. - Graceful Lifecycle: Your app runs, the VM powers off cleanly. No kernel panics, no orphan processes.
Quick Start (Single App):
# Clone (use the ukl-imli-py-go branch)
git clone https://codeberg.org/everybitco/linux.git imli
cd imli && git checkout ukl-imli-py-go
# Run a Python HTTP server as a unikernel
KERNEL=/boot/vmlinuz-$(uname -r) ./imli run-python examples/http_server.py --port 8080:80
# Test it from another terminal
curl http://localhost:8080
Multi-Service Deployment:
# Create imli.yaml
cat > imli.yaml << 'EOF'
services:
api:
type: python
script: examples/http_server.py
port: 8080:80
worker:
type: go
source: examples/http_server.go
port: 8081:80
EOF
# Deploy all services
./imli deploy up imli.yaml
# Check status
./imli deploy ps
# Stop all
./imli deploy down