finds.dev← search

// the find

mozilla/sccache

★ 7,496 · Rust · Apache-2.0 · updated Jul 2026

Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.

sccache is a compiler cache that wraps gcc, clang, MSVC, rustc, and CUDA compilers, storing results locally or in cloud backends (S3, GCS, Azure, Redis, GitHub Actions cache, etc.). It's for teams and CI pipelines that repeatedly compile the same code and want to skip redundant work. Mozilla uses it internally and it shows — the distributed compilation mode includes auth and sandboxing that ccache's icecream mode lacks.

Multi-backend storage with hierarchical multi-level caching means you can have a local disk cache backed by S3, with automatic backfill on miss — practical for teams where some devs hit the remote cache and some don't. The distributed compilation mode packages local toolchains automatically, so you don't have to pre-install matching compilers on build servers. SCCACHE_BASEDIRS normalizes absolute paths before hashing, which solves the classic 'different checkout paths on different machines = zero cache hits' problem that ruins shared CI caches. GitHub Actions cache backend is a first-class feature, not a hack, making it drop-in for most CI setups without needing an S3 bucket.

Rust caching is half-baked: bin crates, dylib crates, proc-macros, and anything with incremental compilation enabled are all uncacheable — which covers most of the slow parts of a real Rust project. C++20 modules support is Clang-only and partial; GCC and MSVC users get nothing. The client-server architecture means a crashed or wedged server process silently breaks your build unless you set SCCACHE_IGNORE_SERVER_IO_ERROR=1, which is not the default. MSVC debug builds require switching from /Zi to /Z7 to embed PDB data in objects rather than a shared PDB file — a non-trivial project change that can affect debugger workflow.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →