About this project

iroh is a networking library from n0-computer that provides an API for dialing by public key. Instead of relying on IP addresses, applications connect to an endpoint identity, and iroh attempts to find and maintain a connection. It tries direct connections and hole-punching, with fallback to public relay servers. It is built on QUIC via noq, providing authenticated encryption, concurrent streams with stream priorities, a datagram transport, and avoiding head-of-line blocking. The repository is a Rust workspace containing iroh core, iroh-relay client/server, iroh-base common types, and iroh-dns-server for DNS/Pkarr address lookup. Pre-existing protocols include iroh-blobs for BLAKE3-based content-addressed blob transfer, iroh-gossip for publish-subscribe overlay networks, and iroh-docs for an eventually consistent key-value store of iroh-blobs. Rust usage shows Endpoint::bind, connecting with an ALPN, opening bidirectional QUIC streams, and a Router accepting protocol handlers. FFI bindings are available via iroh-ffi for other languages. Licensed MIT/Apache-2.0.