Release Recap — June 2026 — iroh 1.0 is here
by okdistributeWelcome to the June release recap for iroh, a modular networking stack in Rust for building direct connections between devices. This is the big one: iroh hit 1.0, and the whole stack moved with it.
iroh
After a long road, iroh is stable. v1.0.0 landed on June 15, followed two weeks later by a small polish release, v1.0.1 on June 29.
What's new in v1.0.0:
- Relay auth without a sidecar. You can now gate a relay with Bearer token access control directly, no external service required (#4326).
- Let's Encrypt across multiple hostnames. A single relay can serve TLS for several hostnames (#4337).
- Configurable NetReport. More knobs for how iroh probes the network (#4020).
- Stable relay URLs. The default relay URLs now point at the 1.0 stable relays (#4341).
- Path selection fix. iroh now correctly abandons paths when a new one opens with worse RTT (#4296).
Breaking changes to note before you upgrade:
- The relay now lets you set a custom
ServerCertVerifier, andCaRootsConfigwas renamed toCaTlsConfig(#4300). - Everything was bumped to 1.0 dependencies (#4343).
v1.0.1 is a quick follow-up: it restores a missing item for backwards compatibility (#4346), stops logging from using span levels above info (#4375), falls back to default nameservers in iroh-dns when there's no JNI context (helpful on Android, #4371), and tidies up the keep-alive and QUIC-stream docs.
iroh-ffi
The language bindings tracked the same milestone. We shipped a release candidate, v1.0.0-rc.1 on June 10, and then the stable v1.0.0 on June 15, so if you're consuming iroh from Swift, Kotlin, Python, or another language, you're now on 1.0 too.
noq
noq — our QUIC implementation under iroh — also reached noq-v1.0.0 on June 15, with a bugfix release noq-v1.0.1 on June 29. Most of the work this month was hardening multipath:
- Backoff for on-path path challenges (#676).
- Abandoned paths are stored in an
ArrayRangeSet,PATH_RESPONSEis ignored once a path is abandoned, andPathEvent::Establishedis never emitted for an abandoned path (#691, #700, #695). - A BBRv3 fix to call
on_packet_sentwhen ACK-eliciting data is sent (#689), plus a qlog panic squashed (#702).
noq-v1.0.1 continues in the same vein: Windows ioctls to suppress ICMP errors on recv (#707), correct handling of PATH_CIDS_BLOCKED and *_BLOCKED retransmission for abandoned paths (#710, #716), and an active_connections underflow fix (#717).
The rest of the stack lands on 1.0
The ecosystem crates caught up to iroh 1.0 this month. Each of these is a breaking dependency bump, so plan your upgrade accordingly:
- iroh-blobs v0.103.0 updates to iroh 1.0 (#239). It also now reports the empty blob as
Completefromstatus(#238), and the docs gained atemp_tagpattern for protecting long-running downloads (#236). - iroh-gossip v0.101.0 updates to iroh 1.0 (#148).
- irpc v0.17.0 updates to iroh 1.0 and noq 1.0 (#103).
- iroh-services reached v1.0.0 alongside everything else.
What's next
1.0 is a milestone, not a finish line — expect us to keep the patch releases coming as we shake out the edges of the stable API. Thanks to everyone who got us here.
Found a bug or something that doesn't feel right on 1.0? Please tell us: https://github.com/n0-computer/iroh/issues. See you at the next release.
To get started, take a look at our docs, dive directly into the code, or chat with us in our discord channel.