iroh 1.0.3 - Steadier Connections
by ramfoxWelcome to a new release of iroh, a modular networking stack in Rust, for building direct connections between devices.
We've shipped iroh 1.0.3 together with noq 1.1.0 to give you a cleaner, smoother connection experience. Say "goodbye" to some pesky panics and "hello" to better error messaging.
Connections hold up better under real-world conditions
This release closes up a handful of corner cases in noq: path validation is timed more consistently when a new path opens, better handling of received data referring to abandoned paths, and a connection-accounting bug that could undercount active connections is fixed. Packet coalescing during the handshake is also more correct now, which matters most on networks that don't behave nicely.
Specifically, if you were seeing the following panics, they have been fixed!
panicked at noq-1.0.1/src/endpoint.rs:648:17: attempt to subtract with overflowpanicked at noq-proto-1.0.1/src/connection/packet_builder.rs:159:9: assertion failed: max_size >= min_size
Fewer confusing errors, less noise
A couple of small changes make failures easier to reason about. Connecting with an empty ALPN now gives you a clear error instead of a panic. Logs are quieter in a couple of places. Small stuff, but it adds up to a better experience when looking through logs to debug.
A win for us because of open source
On top of the work we did to improve noq, we've also merged some extremely helpful upstream commits that were implemented by the folks working on quinn. Thank you!
Better defaults out of the box
The n0 preset now includes an HTTPS-based pkarr resolver. This means that we now, by default, have a fallback if our normal DNS-based resolver fails.
What's next?
We expect the next few releases to keep this rhythm: happy maintenance releases every few weeks, with small fixes for corner cases and invisible improvements. As always, the full details are in the changelogs for iroh and noq.
See you at the next release, and keep filing those bugs!
To get started, take a look at our docs, dive directly into the code, or chat with us in our discord channel.