Skip to content
shippy

What is shippy?

The idea in 30 seconds

Most of a Rust build is compiling crates that someone, somewhere, already compiled from exactly the same inputs: your teammate, CI, or you on another branch yesterday. shippy notices that and hands you the finished files instead of compiling again.

It does this without replacing anything. You keep the real cargo and rustc. You type shippy build where you would type cargo build, and everything that builds today still builds.

What it does for real projects

Dev builds, measured on 2026-11-13. A "new checkout" is a fresh clone at a different path, with an empty target directory, after someone else has built once.

cargoshippy
reth, new checkoutcache in memory
111.3s
4s28× faster
tempo, new checkoutSOURCE_DATE_EPOCH set
127.8s
5.9s22× faster
pyramid backend, new checkoutcache on disk
374.7s
11.3s33× faster
tempo, another machine90 ms from a shared box
127.8s
19.1s6.7× faster
tempo, rebuild after an edittuned settings, nightly
10s
5.4s1.9× faster

The first build on an empty cache costs a little more than cargo (135.3 s against 127.8 s on tempo): shippy is hashing and storing about a thousand results so the next build doesn't have to. See every number.

How it fits together

Loading diagram...
  1. Local first. shippy checks its own store on your machine. Most rebuilds after a branch switch or an undo end here.
  2. Then the box. On a miss it asks the shared server, which answers with results anyone may use.
  3. Then it gives back. What your machine compiled is uploaded in the background. If your token is untrusted, the box rebuilds it in a sandbox before anyone else sees it.

Where to go next