Skip to main contentiroh is a modular networking stack written in Rust. It provides
the building blocks to create applications that can communicate
using fast, cheap, and reliable connections.
Core features
- Fast: iroh enables direct connections between
devices, allowing them to communicate without relying on centralized servers.
- Reliable: iroh is designed to work in challenging network conditions. It
uses relay servers as a fallback when direct connections are not possible.
- Secure: All connections established through iroh are authenticated and
encrypted end-to-end using the QUIC protocol, ensuring data privacy and
integrity.
- Modular: iroh is built around a system of composable protocols
that can be mixed and matched to suit the needs of different applications. This
allows developers to easily add functionality such as file sharing, messaging,
and real-time collaboration.
Use cases
- Local-first, offline-first, peer-to-peer applications: iroh provides the networking foundation for
building applications that can operate without reliance on servers.
- Files & blobs: With protocols like iroh-blobs, iroh enables efficient
file transfer.
- Structured data: iroh’s support for flexible data protocols like KV
CRDTs and Automerge allows
developers to build applications that support real-time collaborative editing
and data synchronization. Any kind of CRDT or OT sync protocol can be integrated.
- Real-time communication: Build chat applications, RPC
services, and streaming data with
iroh’s communication protocols.
Getting started
To get started with iroh, check out the quickstart guide or explore the
protocols documentation to see what protocols are available and
how to use them in your applications.
Read the how it works documentation to understand the underlying
principles and architecture of iroh.