Getting Started
The repository is a Rust workspace first. The docs site is a separate Astro app
under site/.
Local setup
Section titled “Local setup”Practical backend rule for local development:
- use native macOS
VZ/vfkitwhen you are working on the production path - use
Limaon macOS when you are doing Firecracker development - defer a native Linux
/dev/kvmhost until you need final Firecracker release evidence
If you want the Rust environment to be reproducible, use the Nix shell:
nix developIf you are only working on the docs site:
cd sitenpm installnpm run devCore daemon commands
Section titled “Core daemon commands”The first useful commands are:
cargo run -- init --output rvproxy.toml --id tenant-democargo run -- validate --config examples/single-vm.tomlcargo run -- run --config examples/single-vm.tomlrvproxy init writes a starter single-VM config. validate checks schema and
runtime assumptions. run starts the daemon and binds the configured local API
socket.
Example configs
Section titled “Example configs”Validated examples already exist for the main backend families:
examples/single-vm.tomlexamples/firecracker-single-vm.tomlexamples/vz-single-vm.toml
For guest-real smoke flows, the checked-in wrappers live under:
docs/real-backend-smoke.mdexamples/real-backend-smoke/
Development checks
Section titled “Development checks”The normal workspace loop is:
just fmtjust checkjust testjust bench-plugin-budgetjust bench-control-plane-budgetThose last two matter. Plugin and control-plane latency already have explicit regression gates, so “it still works” is not enough if a change drags the hot paths backward.