Kuro

A lightweight, experimental OCI-compliant container runtime built in Rust.

GitHub Crates.io

What and Why

Tools like Docker and Podman use a different runtime under the hood to create and run containers from images. Usually, its runc. Other reliable options are crun and youki. I wanted to learn how containers are actually isolated and ran at the OS level. So, I developed a container runtime myself, fully experimental, to learn about core concepts. (It is NOT production-grade or reliable. It’s purely meant for educational purposes.) kuro creates a container from a bundle rootfs and config.json (compliant with OCI runtime spec) and pauses it, resumes it on start, sends signals through kill command, and cleans up the resources cleanly on delete.

Features

Commands

kuro currently supports the following commands:

Prerequisites

Installation

sh
# Clone the repository
git clone https://github.com/aether-flux/kuro
cd kuro

# Build the binary
cargo build --release

# Move to path (optional, but recommended)
sudo cp target/release/kuro-run /usr/local/bin/

Quickstart

sh
# Prepare bundle (alpine)
mkdir -p /tmp/demo/rootfs
cd /tmp/demo
docker export $(docker create alpine) | tar -C rootfs -xvf -

# Generate standard spec (config.json)
runc spec

# Create and start the container
sudo kuro create demo-container -b .  # -b or --bundle
sudo kuro start demo-container
sudo kuro delete demo-container

Communicate

Find me on
Mail me atamartya96@proton.me
Pokeball vector art