recc
recc
is the Remote Execution Caching Compiler. It is a cross between
ccache
and distcc
using the Remote Execution
APIs.
When invoked with a C/C++ compilation command, it will use the APIs to communicate with a Remote Execution service (such as BuildGrid) to first determine whether the same build has been done before and is cached. If the build is cached remotely, download the result. Otherwise, enqueue the build to be executed remotely using the same execution service which will then dispatch the job to a worker, such as buildbox-worker.
More information about recc
and BuildGrid
can be found in the
presentation we gave
at Bazelcon 2018, and on this blog
post.
recc
is in active development and in use at Bloomberg.
On Linux it primarily supports gcc; and on Solaris/Aix it supports
vendor compilers. Clang support is currently (very) experimental.
For information regarding contributing to this project, please read the Contribution guide.