The project's README from github.com/jdx/mr-boxington. As one markdown file: README.md.
A shared cache. A tidier target/.
Reuse Cargo builds across worktrees, keep disk use in check, and run builds together.
Get started · Documentation · Benchmarks · Releases
mbx is a build cache for Rust projects. Cargo still resolves dependencies,
plans builds, and runs your tools. mbx restores matching compiler outputs from
one shared store and compiles the rest. Each command starts its own cache
agent and stops it when the build ends; there is no daemon to manage.
With mise:
mise use --global --tool-option mr_boxington=true rust mr-boxington
Or with Cargo:
cargo install mbx --locked
mbx setup
With mise 2026.9.2 or newer, the Rust option enables wrapping without an
mbx setup hook. Open a shell with mise activation or shims on PATH,
check Cargo's path,
and use Cargo normally:
cargo build
cargo test --workspace --all-features
cargo clippy --workspace --all-targets -- -D warnings
To try mbx without automatic wrapping, install it and run mbx build directly.
For coding agents and other non-interactive tools, use mise exec -- cargo build
or put mise's shims on their PATH. The
setup guide covers desktop applications,
older mise versions, and standalone shims.
Verified release archives are available for Linux, macOS, and Windows. All installation options →
mbx gc --dry-run.mbx explain --last helps diagnose a build.A cold store needs a build to fill it. Unsupported invocations run normally without caching, and restored debug information can retain the original checkout's paths. See how it works and the caching limits.
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: jdx/mr-boxington-action@v1
- run: mbx test --workspace
Install your chosen Rust toolchain before the cache action. The default backend restores a pruned Cargo target and registry archive; pull requests are restore-only. See the GitHub Action guide for complete workflows, parallel builds, remote servers, and release policy.
mbx doctor # check tools, setup, and cache access
mbx tui # watch builds across the machine
mbx stats # report lifetime savings and workspace sharing
mbx explain --last # explain the last recorded build
mbx cache stats # inspect storage
mbx gc --dry-run # preview collection
mbx clean # remove this workspace's managed target
On a filesystem that supports reflinks, restored outputs share data blocks
with the store until modified. Elsewhere, mbx copies bytes. An existing real
target/ is only replaced after you accept a prompt.
Understand managed targets →
| Task | Guide |
|---|---|
| Set up editors, watchers, and worktrees | Local development |
| Change budgets or build policy | Configuration |
| Choose mold, Wild, or toolchain LLD | Managed linkers |
| Share work across CI runners | Remote cache |
| Cache make or CMake builds | Standalone C and C++ |
| Investigate an unexpected result | Troubleshooting |
| Look up a command | CLI reference |
See CONTRIBUTING.md for development setup, documentation checks, tests, and pull request conventions. Ask questions in Discussions; report suspected vulnerabilities through the private process in SECURITY.md.
mbx builds on Cargo and was informed by sccache and kache, which directly inspired its design. Acknowledgements.