Install
Abrasive is my crack at bringing the good stuff from Bazel / Buck2 to plain ol’ Cargo projects, specifically remote shared cache, distributed compilation, and hermetic builds.
This is not a product! This is an experimental collection of programs. Put together they give me what I want out of bazel for rust-only projects.
The code is open source.
There is a server component to abrasive, if you want to check it out without setting up hosting you can join the test instance. I need to limit the number of builds to something reasonable because I don’t have infinite money.
AI disclosure: None of the code in abrasive was written by an LLM, but LLMs were used for research and bug hunting.
Setup
From inside your project, initialize:
This adds an abrasive section to your top-level Cargo.toml. Edit team or scope there if you need to.
Now authenticate. When asked which instance to use, enter try.abrasive.dev.
Basic use
From anywhere inside the project, run abrasive with the same flags you’d pass to cargo:
The first build warms the remote cache; subsequent builds across your team reuse it.
Optionally, set up a cargo alias. Abrasive is command-line compatible with cargo. Aliasing cargo=abrasive lets you keep typing cargo, and your existing scripts keep working too. For bash:
For zsh, replace ~/.bashrc with ~/.zshrc. For fish:
Now cargo setup, cargo build, cargo run, etc. all route through abrasive.
Due to limited resources, I can handle about 20 users right now.
If we hit the cap, I'll pause sign ups.
3 of 20 signed up
Sign upSignups are paused while we work through the current cap. Check back soon.