This is a simple compiler accelerator that caches and reuses build results to avoid unnecessary re-compilations, and thereby speeding up the build process.
It is similar in spirit to ccache, sccache and clcache.
- Works on different operating systems:
- Linux
- macOS
- Windows
- Though untested, it probably works on most BSD:s
- A modular compiler support system:
- Built-in support for popular compilers.
- Extensible via custom Lua scripts.
- In addition to caching compilation results, BuildCache can be used for caching almost any reproducible program artifacts (e.g. test results, rendered images, etc).
- A fast local file system cache.
- Can optionally use a remote, shared server as a second level cache.
- Optional compression with LZ4 or ZSTD (almost negligable overhead).
Currently the following compilers and languages are supported:
Compiler | Languages | Support |
---|---|---|
GCC | C, C++ | Built-in |
Clang | C, C++ | Built-in |
Microsoft Visual C++ | C, C++ | Built-in |
Green Hills Optimizing Compilers | C, C++ | Built-in |
TI TMS320C6000 Optimizing Compiler | C, C++ | Built-in |
TI ARM Optimizing C/C++ Compiler | C, C++ | Built-in |
TI ARP32 Optimizing C/C++ Compiler | C, C++ | Built-in |
scan-build static analyzer | C, C++ | Built-in |
New backends are relatively easy to add, both as built-in wrappers in C++ and as Lua wrappers.
BuildCache has been used daily in production environments for years with near zero issues (any problem that has emereged has of course been fixed), which gives it a good track record.
With that said, BuildCache is still considered to be under development.