Zero-copy Rust build cache
A drop-in RUSTC_WRAPPER with blake3 content-addressed keys. Hits restore via hardlinks — blobs stored once, shared across every target/. Optional S3 sync carries the cache into CI.
libserde-1.0.219.rlibhardlink
libserde-1.0.219.rlibhardlink
libserde-1.0.219.rlibhardlink
Rust build output is a storage problem
target/ everywhere
Every worktree gets its own target/. The same .rlib materializes over and over until your disk fills with duplicated build output.
sccache helps, but only halfway
sccache skips recompiles but leaves duplicate artifacts across worktrees. kache restores via hardlinks, so the bytes are shared.
CI repeats the same work
Every job rebuilds the same dependency tree. One GitHub Action line and S3 credentials replace all the manual wiring.
A wrapper. A hash. A hardlink.
Stays inside your normal Cargo workflow. The wrapper intercepts every rustc call, the store is content-addressed by blake3, and an optional daemon handles S3 sync.
Install. Init. Build.
kache init handles the cargo wrapper, daemon, and service install in one command. Idempotent — re-run any time to repair configuration.
mise use -g github:kunobi-ninja/kache@latestcargo binstall --git https://github.com/kunobi-ninja/kache kachecargo install --git https://github.com/kunobi-ninja/kachekache initkache init -ykache doctor- uses: kunobi-ninja/kache-action@v1A compact CLI built around the cache
More than a wrapper — monitor, config, and doctor make it usable day to day.
Interactive setup: cargo wrapper + service install + daemon start
Diagnose setup; --fix migrates from sccache
Live TUI dashboard for build events and cache stats
Non-interactive cache stats summary
List cached entries, or details for a specific crate
kache --helpfor the full command surface.Build once. Hardlink everywhere.
Free, open source, Apache-2.0. Drop it in your Cargo workflow today.