Hacker News

Show HN: Kern – container and resource runtime in a 1.5 MB binary, no daemon

47 points by realexweb ago | 6 comments
I built kern because I needed a fast, zero-daemon tool to set CPU/RAM limits and run isolated tasks without the overhead of Docker. It's a single 1.5MB Rust binary using OCI images, cgroup v2, and namespaces. Boxes start in ~3.5ms. It's not a Kubernetes CRI or a microVM, just a standalone container and resource runtime for CLI and agents.

chrisweekly |next [-]

How does this compare to "smolvm" microvms from https://smolmachines.com?

realexweb |root |parent [-]

smolvm is a microVM .kern is plain OS-level isolation

k8sify |next |previous [-]

Can’t wait to play with this, thank you great work!

realexweb |root |parent [-]

thanks.. let me know how it goes or if you hit any issues

jeffbee |next |previous [-]

It looks cool and I am building it r.n. but the submission title was a little misleading as it says "container ... runtime" right there, and I guess it is, but it is not a CRI implementation.

realexweb |root |parent [-]

Fair, and it's not CRI. The README's limits section says "Not a Kubernetes runtime. No CRI. Use containerd or CRI-O." I meant runtime in the docker/podman sense, pull and build and lifecycle in one binary, and you're right that the word is overloaded enough that the title doesn't carry that by itself.

Since you're building it, two things you'll hit before you hit the docs. cargo install needs the package name, because it searches the whole repo and finds three packages with binaries (the CLI, the fuzz harness, the Windows shim):

cargo install --git https://github.com/getkern/kern getkern --locked

And a source build is 1.91 MB, not the 1.5 in the title. The release binary is smaller because CI builds it with a pinned nightly, build-std and optimize_for_size, on an opt-level="z" profile; the source stays plain stable Rust on purpose, so building doesn't need nightly.

Interested in what breaks.

|next |previous [-]

rizky05 |next |previous [-]

[dead]

realexweb |previous [-]

[flagged]