A ccache-like compiler wrapper that caches compilation outputs locally or in remote storage to speed up build times.
sccache is a compiler caching tool that speeds up software builds by storing and reusing compilation outputs. It wraps compilers like gcc, clang, rustc, and nvcc, serving cached results from local or cloud storage when possible. It solves the problem of repetitive compilation in development and CI environments, drastically reducing build times.
Developers and DevOps engineers working on large C++, Rust, or CUDA projects, especially those using CI/CD pipelines where build caching is critical. Teams needing secure distributed compilation across multiple machines.
sccache offers broader language support than ccache (including Rust and CUDA), secure distributed compilation features, and flexible cloud storage integration. Its active development and backing by Mozilla provide reliability and modern caching capabilities for complex build environments.
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.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports C/C++, Rust, CUDA, HIP, and Assembler, as listed in the README, making it versatile for diverse codebases beyond traditional ccache.
Offers icecream-style distributed compilation with authentication, encryption, and sandboxed execution, addressing security weaknesses in alternatives.
Integrates with local disk, S3, Redis, GCS, Azure, and GitHub Actions cache, enabling scalable cache sharing across teams and CI pipelines.
SCCACHE_BASEDIRS allows cache hits across different directory paths, essential for CI environments with varying checkout locations, as detailed in the usage section.
Only supports Clang for C++20 modules; GCC and MSVC modules are unsupported, forcing cache bypasses for modern C++ projects using those compilers.
Setting up distributed compilation or cloud storage requires following separate guides (e.g., distributed quickstart) and managing server processes, adding overhead.
Cannot cache crates that invoke system linkers or use incremental compilation, reducing effectiveness for certain Rust project structures, as noted in caveats.
sccache is an open-source alternative to the following products: