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.

Indices and tables