bazel-remote vs Harmonia
bazel-remote
github.comHarmonia
github.comSide by side
| Figure | bazel-remote | Harmonia |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Build Cache Software | 8.3 (#4) | 7.8 (#13) |
| Compression | It supports zstandard-compressed CAS blobs, which can reduce network use and increase effective cache size. | It can transparently compress content with zstd. |
| License | The repository identifies the project as licensed under Apache-2.0. | The project is licensed under the MIT License. |
| Purpose | bazel-remote is an HTTP/1.1 and gRPC server for use as a remote build cache for Bazel and other REAPI clients, or as part of a remote execution service. | Harmonia serves a Nix store as a binary cache over HTTP and is written in Rust. |
Plans
In their own words
bazel-remote
bazel-remote is free, Apache-2.0-licensed open-source software that runs as a self-hosted HTTP/1.1 and gRPC server for Bazel remote caching and other REAPI clients. Cache data can stay on disk with a configured maximum size; least recently used files are removed when that limit is reached. Storage backends include S3, Google Cloud Storage, and an experimental Azure Blob Storage proxy. The server exposes HTTP REST endpoints and REAPI v2 ActionCache, ContentAddressableStorage, Capabilities, and Byte Stream services over gRPC. Zstandard-compressed CAS blobs can reduce network use and increase effective cache capacity. Prometheus metrics are available for HTTP and gRPC endpoints. Deployment options include Docker images, Docker Compose, Kubernetes examples, or a standalone Linux binary, including ARM64 Docker deployments such as Raspberry Pi. Authentication supports .htpasswd-style credentials or mutual TLS; LDAP is experimental, and only one mechanism can be active. TLS settings are configurable. The default permits unauthenticated access, so operators must configure protection.
Harmonia
Harmonia is free, open-source software for serving a Nix store as a binary cache over HTTP. Written in Rust for Linux self-hosting, it supports HTTP range requests for NAR streaming and streaming build logs. The /serve// endpoint can provide package contents and discover index.html to serve websites directly from the Nix store. Harmonia can transparently compress content with zstd and provide TLS when no frontend web server is used. Documentation covers a NixOS module and nginx HTTPS frontend configuration for a public cache. Narinfo signing is disabled unless private signing-key paths are supplied. Prometheus metrics are available at /metrics, with a Grafana dashboard included in the repository. Since version 3.1.0, metadata is read directly from db.sqlite without a nix-daemon connection. Version 3.3.0 adds harmonia-gc for removing store garbage while nix-daemon builds. It uses the MIT License.