A ccache-like compiler wrapper that caches compilation outputs locally or in remote storage to speed up build times.
sccache is a shared compilation cache tool that acts as a compiler wrapper to avoid redundant compilation. It caches compiled outputs and reuses them when the same source code and compiler arguments are detected, dramatically speeding up build times for C/C++, Rust, CUDA, and other languages. It supports both local and remote storage backends for cache sharing across machines.
Developers and DevOps engineers working on large codebases in C/C++, Rust, or CUDA who want to reduce compilation times in local development and CI/CD pipelines.
sccache offers a secure, distributed caching solution with support for multiple languages and cloud storage backends, unlike ccache which is primarily local. Its icecream-style distributed compilation includes authentication and encryption, making it suitable for team and CI 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.
sccache caches compilation for C/C++, Rust, CUDA, ROCm HIP, and Assembler, as listed in the Key Features, making it versatile for multi-language projects.
Provides icecream-style distributed compilation with authentication, encryption, and sandboxed execution, addressing security gaps in similar tools, as highlighted in the README.
Supports local disk, S3, Redis, Memcached, GCS, Azure, and GitHub Actions cache, among others, allowing teams to choose optimal storage backends for cache sharing.
Uses SCCACHE_BASEDIRS to normalize paths before hashing, enabling cache hits across different directories, which is crucial for CI/CD pipelines and team environments.
Cannot cache crates that invoke the system linker (e.g., bin, dylib) or incrementally compiled crates, reducing effectiveness for some Rust builds, as admitted in the Known Caveats.
Only supports Clang for C++20 modules; GCC and MSVC are not yet supported, limiting adoption in projects using these compilers, per the Known Caveats section.
Configuring distributed compilation or cloud storage requires additional steps and security understanding, as noted in the distributed quickstart guide, which can be daunting for new users.
Sccache is an open-source alternative to the following products: