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 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.

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

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.