finds.dev← search

// the find

n0-computer/iroh

★ 8,361 · Rust · Apache-2.0 · updated Apr 2026

IP addresses break, dial keys instead. Modular networking stack in Rust.

Iroh is a Rust networking library that lets you establish QUIC connections between peers using public keys instead of IP addresses, handling NAT traversal, hole-punching, and relay fallback automatically. It's aimed at developers building P2P applications, local-network tools, or anything where IP addresses are unstable or unknown. The companion crates (iroh-blobs, iroh-gossip, iroh-docs) layer higher-level protocols on top.

- The API surface is genuinely clean — bind an endpoint, connect by NodeId, get a QUIC connection. The echo example is ~20 lines and actually shows the full flow without hiding complexity behind magic.

- Serious infrastructure investment: network simulation configs in .github/sims/, a dedicated perf dashboard (perf.iroh.computer), proptest regression files, and a flaky-test workflow. This is not a weekend project.

- The relay server is self-hostable and the relay protocol is documented in TRANSPORTS.md, so you're not locked into n0's infrastructure. The relay code is part of this repo, not a black box.

- Multipath support is real — the socket layer tracks per-path state and can switch between direct UDP and relay mid-connection, which is non-trivial to implement correctly.

- FFI bindings (iroh-ffi) are a separate repo and lag behind the core library. If you're not writing Rust, you're a second-class citizen and will hit API gaps or version mismatches.

- The ecosystem crates (iroh-blobs, iroh-gossip, iroh-docs, iroh-willow) all live in separate repos with independent version cycles, so coordinating compatible versions across them is a recurring pain point as they evolve.

- iroh-willow is explicitly marked 'in-construction' and iroh-docs appears to be in maintenance mode, meaning two of the four advertised protocol layers are either unstable or stagnating.

- Discovery relies on either a centrally-operated DNS server (dns.iroh.link) or you standing up iroh-dns-server yourself. There's no purely decentralized bootstrap option out of the box, which is a meaningful operational dependency for production deployments.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →