0.3.0
One backend: our own VMM on Hypervisor.framework. Rosetta served by lighter-fs from the user's own installed Rosetta binary, with nothing of Apple's shipped, and TSO set per thread by a kernel patch so native arm64 work does not pay for it. The Virtualization.framework experiment is measured, recorded, and retired to the framework branch.
What changed since 0.2.0
- Rosetta on our VMM.
lighter rosetta [--install],lighter doctorreports it,--platform linux/amd64images run under Rosetta with the kernel'sPR_SET_MEM_MODEL; qemu remains the fallback.docs/x86-64.mdexplains what was observed and why the repo carries no Apple bytes. - Start-up.
lighter startanswersdocker versionin 0.4 s on an M5 Pro and 0.5 s on an M1 (OrbStack 1.1 and 1.2 s): raid6 self-benchmark off, containerd started by init in parallel with dockerd, tens-of-milliseconds polls.lighter stopis a shutdown (engine stopped, sync, power off) in half a second. - Container start. 560 ms to about 110 to 150 ms: a guest flush was Rust's
sync_data, which isF_FULLFSYNCon macOS at 4 ms a call; it isfsyncnow. HZ=250 with expedited RCU, measured against 1000 on both machines. - Network. UDP back (br_netfilter removed; Docker 28 turns it on behind our TPROXY rule), hairpin works, egress cuts in the poller and the vsock condvar.
- Benchmarks. A start-up case in the suite and the README, both machines re-recorded on this build, Docker Desktop's start-up measured once the harness learned to wait out its process tree.
Records on this head
M5 Pro against OrbStack: own disk and host share won on every row; memory peak 4168 vs 5498 MiB; TCP 93/82/91/87 vs 97/53/54/93 Gbit/s; GET 63 vs 73 µs; start 0.4/0.5 vs 1.1/1.5 s. M1: own-disk npm ci at native speed (7.78 vs 7.81 s), settled memory 800 MiB, idle 10 ms/s vs 20. The rows still trailing are in the worklog's record row for 2026-09-05.
Gates
m1–m8 green on f6b7195 (m5 with LIGHTER_BENCH_ALLOW_NOISY=1 beside the daily driver); cargo fmt --all -- --check, cargo clippy --all-targets -- -D warnings, cargo test --all clean.
Install
brew tap fieldwork-ai/tap && brew install lighter
or the tarball below, lighter-0.3.0-arm64.tar.gz, sha256 efac26746b3466c2fbee11caad203ce0a2fbb7db433135c8ef1a73e300242f4e. Apple Silicon, macOS 15 or later; signed with a Developer ID and notarized.