Hey folks,
I’ve been working on Crate for the past few weeks. It’s a small daemonless container runtime written in Go for Linux.
The goal was to understand how container runtimes work under the hood instead of treating Docker/Podman as magic. It launches containers directly, stores state on disk, and supports both rootless and rootful execution.
Currently, it supports the core pieces of a basic container runtime:
pulling and running Docker Hub images
container lifecycle commands like
run, create, start, stop, ps, logs, and rmLinux namespaces for process, mount, hostname, user, and network isolation
root filesystem setup with
pivot_root / chrootbind mounts, image env/CMD/entrypoint handling, and interactive PTYs
rootless private networking with
pasta and port publishing (doesn't support networking in root gonna add that soon)I’ve also written a small guide/docs series for anyone else who wants to understand or build something similar: docs
It’s still experimental and not production-ready. Big missing pieces include cgroups/resource limits, stronger security hardening, full OCI compliance, better registry support, multi-platform support and probably a million other things that Im forgetting.
Repo: https://github.com/aayushkdev/crate/
I’m still improving it, so I’d love to hear feedback, ideas, or suggestions. If you like the project, a star on GitHub would mean a lot.
https://redd.it/1tyk9r0
@r_linux