Hey HN — Omni Cache is a sidecar daemon for CI caching. It exposes multiple cache protocols on a local endpoint while storing blobs in S3‑compatible storage.
Instead of funneling traffic through a centralized cache proxy, each job talks directly to S3, avoiding a shared bottleneck as workloads scale. No extra ingress/egress traffic bills.
What it supports:
- GitHub Actions cache v2 (used by Docker layer caching)
- Bazel HTTP remote cache
- Gradle build cache
- Xcode/LLVM compilation cache
- Custom HTTP clients
How it works:
- Run it next to your CI job/runner; HTTP + gRPC on one local address
- All built‑in protocols enabled by default
- S3‑backed (AWS or any S3‑compatible storage)
- Built‑in cache metrics endpoint and `omni-cache stats`
- LocalStack dev mode for quick testing
This has powered billions of caching operations for Cirrus Runners/CI since 2017.
Instead of funneling traffic through a centralized cache proxy, each job talks directly to S3, avoiding a shared bottleneck as workloads scale. No extra ingress/egress traffic bills.
What it supports: - GitHub Actions cache v2 (used by Docker layer caching) - Bazel HTTP remote cache - Gradle build cache - Xcode/LLVM compilation cache - Custom HTTP clients
How it works: - Run it next to your CI job/runner; HTTP + gRPC on one local address - All built‑in protocols enabled by default - S3‑backed (AWS or any S3‑compatible storage) - Built‑in cache metrics endpoint and `omni-cache stats` - LocalStack dev mode for quick testing
This has powered billions of caching operations for Cirrus Runners/CI since 2017.
Repo: https://github.com/cirruslabs/omni-cache
I’d love feedback on: - Protocols you want next - CI/networking gotchas I should document - Metrics/observability you wish caches exposed