v0.35.0
n0-computer/irohv0.35.0May 12, 2025by github-actions[bot]
AI Summary
A major release updating dependencies (axum, pkarr) and refactoring metrics to use iroh-metrics v0.34.
Key Highlights
- Router::spawn is now a plain function (not async) and infallible.
- Metrics refactored to use iroh-metrics v0.34 group.
- pkarr upgraded to v3.
- Added 'fallback' ALPNs support.
- Added Endpoint::net_report method.
- Added WebSocket proxying and test-utils support.
Breaking Changes
- Router::spawn is now a plain function, not async fn.
- Router::spawn is now infallible.
- Metrics structs updated to iroh-metrics v0.34 group.
- pkarr upgraded to v3.
- RelayMap API changes.
New Features
- Fallback ALPNs.
- Endpoint::net_report method.
- WebSocket proxying and test-utils support.
- axum 0.8.
Full Release Notes
## ⚠️ Breaking Changes
- `iroh`
- remove
- `pub fn default_from_node(url: RelayUrl, stun_port: u16) -> RelayMap`
- change
- `pub fn from_url(url: RelayUrl) -> RelayMap`, use `From<RelayUrl>` instead
- `Router::spawn` is now a plain function instead of an `async fn`
- `Router::spawn` is now infallible, instead of returning `anyhow::Result<()>`
- All metrics structs (`iroh::metrics::{MagicsockMetrics, PortmapMetrics, NetReportMetrics}`) now implement `MetricsGroup` from the new version `0.34` of `iroh-metrics` and no longer implement traits from `iroh-metrics@0.32`.
- Metrics are no longer registered onto the static superglobal `Core`. `iroh` does not use `static_core` feature of `iroh-metrics`. Metrics are now exposed from the subsystems that track them, see e.g. `Endpoint::metrics`.
- Several methods now take a `Metrics` argument. You can always pass `Default::default` if you don't want to unify metrics tracking with other sections.
- `pkarr::SignedPacket`, as used as a parameter in `iroh::dns::node_info::NodeInfo::to_pkarr_signed_packet` and `iroh::dns::node_info::NodeInfo::from_pkarr_signed_packet` is now expecting `pkarr` at major version `3` instead of `2`
- `iroh-relay`
- change
- Minor change in the `From` impls for `ConnSendError` due to changing the underlying library
## ⛰️ Features
- *(iroh)* Allow connecting with "fallback" ALPNs ([#3282](https://github.com/n0-computer/iroh/issues/3282)) - ([839bfaa](https://github.com/n0-computer/iroh/commit/839bfaa35d6ba8635192ca1ab44c9604be7d3941))
- *(iroh)* Add `net-report` method on the `iroh::Endpoint` that returns a `Watchable<Report>` ([#3293](https://github.com/n0-computer/iroh/issues/3293)) - ([3448b4b](https://github.com/n0-computer/iroh/commit/3448b4bce4d32ade8ad7129030a0b2474aaf3409))
- *(iroh,iroh-relay)* Enable proxying and test-utils support for websockets, allow configuring websockets in `endpoint::Builder` ([#3217](https://github.com/n0-computer/iroh/issues/3217)) - ([8a24a95](https://github.com/n0-computer/iroh/commit/8a24a95691484f42707d899000721b7f1c79256e))
- *(iroh-relay)* [**breaking**] Adjust APIs to make it easier to create `RelayMap`s from lists of `RelayUrls` ([#3292](https://github.com/n0-computer/iroh/issues/3292)) - ([cd0a47a](https://github.com/n0-computer/iroh/commit/cd0a47ad53c9ba2cc08705597430ddefe39c519b))
- Update to axum@0.8 ([#3274](https://github.com/n0-computer/iroh/issues/3274)) - ([1d79f92](https://github.com/n0-computer/iroh/commit/1d79f9250f980f477415bcfec964096f2dc0e3e1))
- [**breaking**] Metrics refactor ([#3262](https://github.com/n0-computer/iroh/issues/3262)) - ([1957ca8](https://github.com/n0-computer/iroh/commit/1957ca8237ce6fa5adbe42ece15e0baad53cdc0c))
- Fix minimal crates selection ([#3255](https://github.com/n0-computer/iroh/issues/3255)) - ([a62a2bd](https://github.com/n0-computer/iroh/commit/a62a2bd25f5280a8d1512bcd261e666731de5d95))
- Improve transfer, publish, resolve examples ([#3296](https://github.com/n0-computer/iroh/issues/3296)) - ([30577d3](https://github.com/n0-computer/iroh/commit/30577d3094f7ea59a2ac53c78d7b63e807bd4d43))
## 🐛 Bug Fixes
- *(iroh)* [**breaking**] Update dependencies & fix 0-RTT with newer rustls by pulling the expected `NodeId` out of the `ServerName` in verifiers ([#3290](https://github.com/n0-computer/iroh/issues/3290)) - ([af882a6](https://github.com/n0-computer/iroh/commit/af882a66e52b1838b93c0c2a4ea000ee723d80a4))
- *(iroh-dns-server)* Backwards compatibility for packets stored with iroh-dns-server v0.34 or lower ([#3295](https://github.com/n0-computer/iroh/issues/3295)) - ([74b8baa](https://github.com/n0-computer/iroh/commit/74b8baa2a0ec11fd5ee621583fb3f4e9aa391b54))
- *(iroh-dns-server)* Fixes for packet expiry ([#3297](https://github.com/n0-computer/iroh/issues/3297)) - ([146f423](https://github.com/n0-computer/iroh/commit/146f423a6805ab0147703832ad98ee6c52797174))
- *(iroh-relay)* Don't stop relay client actor if queues become full ([#3294](https://github.com/n0-computer/iroh/issues/3294)) - ([f3c9af3](https://github.com/n0-computer/iroh/commit/f3c9af35542a7f2e00303090d1ca5273f86bc375))
## ⚙️ Miscellaneous Tasks
- *(iroh)* Add `echo-no-router.rs` example ([#3267](https://github.com/n0-computer/iroh/issues/3267)) - ([7e13aa3](https://github.com/n0-computer/iroh/commit/7e13aa3ea76204f7ee4d59be84ed454dff73766c))
- Update to mozilla-actions/sccache-action@v0.0.9 ([#3268](https://github.com/n0-computer/iroh/issues/3268)) - ([792e6c4](https://github.com/n0-computer/iroh/commit/792e6c4148a4a721189f16d453a365f7663e2439))
## Deps
- [**breaking**] Update pkarr to v3 ([#3186](https://github.com/n0-computer/iroh/issues/3186)) - ([7b4bce8](https://github.com/n0-computer/iroh/commit/7b4bce8c0f1364d1eb4f1ec22cd82527a79376ab))