What's Changed
Highlights
- Rust-based nix daemon replacing C++ nix-daemon:
harmonia-daemonis a pure-Rust implementation of the Nix daemon protocol that speaks directly to the store database, eliminating the dependency on the C++ nix-daemon
by @Mic92 in #570 - NixOS module:
services.harmonia-dev.daemon.enable:
New option to run the Rust-based daemon instead of depending on
the C++ nix-daemon. When enabled, harmonia-cache automatically
connects to the harmonia-daemon socket. The cache options moved
underservices.harmonia-dev.cache.*(old paths are aliased)
by @Mic92 in #570 - Prometheus metrics and Grafana dashboard:
Built-in metrics endpoint with a ready-to-use Grafana dashboard
by @Mic92 in #570 - Landing page with public keys:
New landing page showing cache configuration and public keys, with automatic URL scheme detection for HTTP-only deployments
by @Mic92 in #647
#653 - Drop support for daemon protocol versions < 1.37:
Only Nix 2.24+ is now supported
by @Mic92 in #643
Bug Fixes
- Fix resuming downloads (closes #578)
by @the-sun-will-rise-tomorrow in
#600 - Fix chroot store support (fixes #616):
Use virtual store path for daemon communication when files are physically located elsewhere
by @Mic92 in #743 - Fix NixOS module with recent nixpkgs:
lib.mdDocwas removed from nixpkgs, causing build failures
by @teto in #697 - Improve error messages:
Replace panics with descriptive error messages throughout
by @Mic92 in #656
#657
New Contributors
- @Ericson2314 made their first contribution in
#658 - @teto made their first contribution in
#697 - @amaanq made their first contribution in
#773
Full Changelog:
harmonia-v2.1.0...harmonia-v3.0.0