AnvilREAPI

Documentation

Getting connected takes two lines. Getting a 94% hit rate takes an afternoon of making your build hermetic.

Endpoints

bash
grpcs://cache.eu.cz-mirror-01.bestaislop.com      # REAPI, Europe
grpcs://cache.us.cz-mirror-01.bestaislop.com      # REAPI, US
https://cache.eu.cz-mirror-01.bestaislop.com/…    # HTTP caches (Gradle, Turbo, WebDAV)

Authentication

Static tokens, or OIDC from your CI provider so no long-lived secret exists at all. Write access is a separate scope.

Hermeticity

Cache hit rate is a hermeticity metric wearing a disguise. The usual culprits, in order of how often we see them:

  1. Unpinned toolchains — a compiler patch release changes every key
  2. Environment variables leaking into actions (PATH, HOME, locale)
  3. Absolute paths embedded in outputs
  4. Timestamps written into artefacts
  5. Non-deterministic code generation
Run anvil explain on your ten most expensive targets before you tune anything else. In most repositories two of the five causes above account for the majority of the misses.

Node proxy

bash
# runs on the runner host, caches blobs on local disk
docker run -d --net host -v /var/cache/anvil:/cache \
  anvil/proxy --upstream grpcs://cache.eu.cz-mirror-01.bestaislop.com \
  --disk-limit 200GB

Eviction

Least recently used within your quota. Action results referenced by a pinned build are exempt, so a release build stays reproducible even after months.