A free, open-source app for sending files and messages to nearby devices over the local network, without internet or third-party servers.
n0-computer/iroh
A Rust library for connecting apps by public key, with QUIC transport, hole-punching and relay fallback.
- Stars
- 12,779
- Forks
- 778
- Open issues
- 183
- Last commit
- 6 hours ago
What is it?
Iroh lets applications dial a peer by its public key instead of an IP address. The library finds and maintains the best available route to the peer, first trying a direct connection through hole-punching and falling back to public relay servers when that fails.
Connections are built on QUIC through the noq library, which provides authenticated encryption, concurrent streams with priorities, a datagram transport, and avoids head-of-line blocking. Developers can write their own protocols on top of these connections.
The repository also offers pre-built protocols: iroh-blobs for BLAKE3 content-addressed transfer, iroh-gossip for publish-subscribe overlay networks, and iroh-docs for an eventually consistent key-value store. Bindings for other languages are maintained separately in iroh-ffi.
Key features
- 01Dial peers by public key rather than IP address
- 02Direct connections via hole-punching with relay fallback
- 03QUIC connections with encryption and multiplexed streams
- 04Pre-built protocols for blob transfer, gossip and key-value docs
- 05Public relay server implementation included in the workspace
Use cases
- Peer-to-peer apps that must connect devices behind NAT
- Syncing files between devices without a central server
- Building real-time messaging or pub-sub overlays between nodes
Topics
FAQ
- What is iroh?
- A Rust library for connecting apps by public key, with QUIC transport, hole-punching and relay fallback. Iroh lets applications dial a peer by its public key instead of an IP address. The library finds and maintains the best available route to the peer, first trying a direct connection through hole-punching and falling back to public relay servers when that fails.
- Is iroh free to use? What license does it have?
- iroh is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is iroh still maintained?
- Actively maintained. The last commit to iroh was on Oct 19, 2026.
- What can I use iroh for?
- Peer-to-peer apps that must connect devices behind NAT Syncing files between devices without a central server Building real-time messaging or pub-sub overlays between nodes
- Where can I get iroh?
- The source code and installation instructions are on GitHub: https://github.com/n0-computer/iroh
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A minimal Rust CLI that exposes a local TCP port to a remote server, so localhost services can be reached from the public internet.
A netcat-like CLI and Go library that connects two machines over Tailscale's WireGuard data plane without needing a Tailscale account or control plane.
A terminal network diagnostics tool in Rust that shows live traffic, connections, packets and diagnoses with one command.
A GTK Linux client for Google's Quick Share protocol, for sending and receiving files wirelessly with Android devices.
A JavaScript library for building multiplayer web apps where browsers connect peer-to-peer over WebRTC without running your own server.