v0.8.0 Release
Highlights
- Concurrent chunked NAR transfer: NAR files are now fetched through multiple concurrent connections. This feature is enabled by default and transparently falls back to single-connection transfer for servers that do not support range requests. Credits to @mio-19 for the idea.
- Status dashboard: The proxy's web interface now displays a live dashboard showing substituter availability, cache statistics, and current configuration.
- Earlier substituter fallback: NAR file streaming now detects unavailable substituters sooner and falls back to alternatives without waiting for timeouts.
New Features
- Added concurrent chunked NAR file transfer, enabled by default. Configurable via
network.chunked_streaming,network.streaming_chunk_max_len, andnetwork.streaming_window_max_len. - Added a dynamic status dashboard at the proxy's root URL.
Improvements
- NAR file streaming falls back to alternative substituters earlier when the selected substituter becomes unavailable.
What's Changed
- chore(deps): bump Rust dependency anyhow to 1.0.103 by @renovate[bot] in #79
- chore(deps): bump Rust dependency arc-swap to 1.9.2 by @renovate[bot] in #80
- feat(frontend): add dynamic status dashboard by @XYenon in #81
- chore(deps): bump Rust dependency serde_json to 1.0.150 by @renovate[bot] in #82
- Polish dashboard UI by @StarryReverie in #84
- Deprecate build support by garnix by @StarryReverie in #85
- Fallback earlier when streaming NAR file if selected substituter is already unavailable by @StarryReverie in #86
- chore(deps): bump Rust dependency bytes to 1.12.1 by @renovate[bot] in #87
- Refactor by extracting streaming client to subcrate by @StarryReverie in #88
- Add concurrent chunked NAR file transfer by @StarryReverie in #89
- Update flake inputs and bump Rust toolchain version to 1.96.1 by @StarryReverie in #90
- Revert "chore: update flake inputs and bump Rust toolchain version to 1.96.1" by @StarryReverie in #91
- Add configuration items for chunked NAR streaming by @StarryReverie in #92
- chore(deps): bump Rust dependency toml to 1.1.3 by @renovate[bot] in #93
- Enable all testcases from all crates in the workspace by @StarryReverie in #94
- Add CONTRIBUTING.md, architecture, and conventions documentations by @StarryReverie in #96
- chore(deps): bump Rust dependency which to 8.0.5 by @renovate[bot] in #95
- chore(deps): bump Rust dependency clap to 4.6.2 by @renovate[bot] in #97
- Refactor by unifying error handling and re-designing API by @StarryReverie in #100
- chore(deps): bump Rust dependency tokio to 1.53.0 by @renovate[bot] in #98
Full Changelog: v0.7.0...v0.8.0