github fieldwork-ai/lighter v0.3.0
lighter 0.3.0

latest releases: v0.13.8, v0.13.7, v0.13.6...
one month ago

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 doctor reports it, --platform linux/amd64 images run under Rosetta with the kernel's PR_SET_MEM_MODEL; qemu remains the fallback. docs/x86-64.md explains what was observed and why the repo carries no Apple bytes.
  • Start-up. lighter start answers docker version in 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 stop is 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 is F_FULLFSYNC on macOS at 4 ms a call; it is fsync now. 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.

Don't miss a new lighter release

NewReleases is sending notifications on new releases.