iroh 1.0.3 - Steadier Connections

by ramfox

Welcome 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!

Iroh is a dial-any-device networking library that just works. Compose from an ecosystem of ready-made protocols to get the features you need, or go fully custom on a clean abstraction over dumb pipes. Iroh is open source, and already running in production on hundreds of thousands of devices.
To get started, take a look at our docs, dive directly into the code, or chat with us in our discord channel.