Skip to content
ccache remote cache

Compile C and C++ with shared results.

Connect ccache to a workspace your CI and local builds can use. Reuse eligible compiler results without replacing your compiler or build system.

With ccache configured in your build system:

.boringcache.toml
workspace = "my-org/app"

[adapters.ccache]
tag = "ccache-cache"
command = ["cmake", "--build", "build"]
boringcache ccache
permissions:
  contents: read
  id-token: write

steps:
  - uses: boringcache/one@f0fb9b2d926a32b10c543e92093ba00c5a291b79 # v1.33.0
    with:
      mode: ccache
      trust-policy: auto
  - run: cmake --build build
steps:
  - label: Build
    command: >
      boringcache ci run
      --oidc-provider buildkite
      -- boringcache ccache
build:
  timeout: 1h
  id_tokens:
    BORINGCACHE_OIDC_TOKEN:
      aud: urn:boringcache:workload
  script:
    - boringcache ci run --oidc-provider gitlab -- boringcache ccache

Use ccache as you do today.

Compiler results

Reuse compatible compiler outputs.

Existing build configuration

Keep ccache configured in CMake, Meson, or Make.

Cache visibility

Inspect hits, misses, errors, and transfers.

Keep your compiler setup explicit.

BoringCache provides shared storage; it does not select your compiler launcher. Configure ccache in your build system before running the adapter.

See which compilations used cache.

Inspect ccache requests, hits, misses, timeouts, and errors alongside cache transfers.

Explore the workspace →
Workspace insights

Cache activity

Inspect reads, misses, and writes.

Transfers

See what each build downloads and uploads.

Storage

Track stored cache data in your workspace.

77%

Compiler results reused

OBS Studio · ccache

Keep shared-cache publication in trusted jobs.

Give consumers restore access and publishers a separate permission. Connect supported CI through OIDC or use scoped credentials.

Connect your CI →

Separate readers and publishers

  • Trusted builds Publish shared cache for the next build Read + publish
  • Pull requests Restore cache without replacing it Read only
  • Local development Use a scoped credential for the workspace Scoped access

Before you connect.

Does BoringCache replace ccache?
No. ccache still decides cache keys, hits, and misses. BoringCache supplies its shared remote storage and lifecycle.
Will BoringCache configure my compiler launcher?
Keep ccache configured as your compiler launcher. With CMake, set CMAKE_C_COMPILER_LAUNCHER and CMAKE_CXX_COMPILER_LAUNCHER to ccache. BoringCache does not change your compiler selection.
Is ccache always faster than a directory cache?
No. Remote storage supports reuse, but total time depends on setup, transfer, and the amount of compiler work. Measure the complete build on your project.
Read the ccache setup guide →

Start with your next ccache build.

Install the CLI. Run onboarding to connect your repository and configure your cache.

30 GB of cache free. No credit card required.

curl -sSL https://install.boringcache.com/install.sh | sh
boringcache onboard
boringcache ccache