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.
After last release's security fix, we're happy to be back to the good kind of boring. We've shipped iroh 1.0.3 together with noq 1.1.0 to give you a cleaner, smoother connection experience, without breaking any APIs.
Connections hold up better under real-world conditions
This release closes up a handful of corner cases in noq: path validation is timed more correctly when a new path opens, stray packets from paths that have already been abandoned are no longer allowed to cause confusion, 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.
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.
Know when a connection is trustworthy
noq adds a new Connection::authenticated method that succeeds as soon as an 0-RTT connection is proven to not be a replay attack (and always succeeds immediately in a 1-RTT connection). We still have Connection::handshake_confirmed, which waits longer for the client to confirm the client-side authentication. Read more here
Better defaults out of the box
The n0 preset now includes a pkarr resolver. This means that we now, by default, have a fallback if our normal DNS 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.