iroh 0.96.0 - The QUIC Multipaths to 1.0
Release of iroh v0.96












Rave uses iroh to stream video between millions of devices around the world every day.
Read the Rave case study →Fast connections.
Anywhere.
Forever.
Dial any endpoint running anywhere, big or small — cloud servers, tablets, or Raspberry Pis.
The core technology is open source, and relays are stateless. That means you can pluralize with hosting across regions and clouds, or self-host anywhere in the world.
Learn about RelaysSync anything, anywhere
Build APIs that are flexible and modular. Supports files, structured data, video streaming, and RPC between cloud and edge — or write your own protocol.
E2E Encrypted, Always
All connections are end-to-end encrypted, with an access control layer that builds up from public keys over QUIC connections.
Deploy a dedicated relay
Run your own relay server for guaranteed availability and lower latency. Self-host anywhere or use our managed relay infrastructure across multiple regions.

“Doubling the network speed halves our compute budget. That's the difference between a $1M model and a $500K model.”
There are dozens of open source ready-made, composable protocols are built on top of iroh. Mix & match to get the feature set you need.
See how companies use iroh to build fast, reliable, distributed applications.
AI/ML
Distributed AI Training
Train foundation LLMs with compute distributed around the world, across AWS, GCP, Azure, and self-hosted infrastructure.

Streaming Video
Video Streaming at Global Scale
Stream video between millions of devices around the world every day, with over 1 million concurrent connections per relay.

Resilient Apps
Resilient Messaging & P2P Web Apps
Power in-chat apps for hundreds of thousands of devices around the world, even when internet access is precarious.

Deploy, Monitor, Fix
All commits to iroh's main branch run through a growing set of simulations & tests.
When you build your app, iroh provides opt-in observability and custom metrics specific for your app. Get visibility into your endpoints — track connection health and throughput across all your devices and services.
Montior your App// a program that creates two endpoints & sends a ping between them
use anyhow::Result;
use iroh::{Endpoint, protocol::Router};
use iroh_ping::{ALPN as PingALPN, Ping};
#[tokio::main]
async fn main() -> Result<()> {
// create the receive side
let recv_endpoint = Endpoint::bind().await?;
let recv_router = Router::builder(recv_endpoint)
.accept(PingALPN, Ping::new())
.spawn();
// get the receive side's address:
let addr = recv_router.endpoint().addr().await?;
// create the send side & send a ping!
let send_ep = Endpoint::bind().await?;
let send_pinger = Ping::new();
send_pinger.ping(&send_ep, addr).await?;
// ok!
Ok(())
}Release of iroh v0.96
We combine the privacy of Tor onion services with the performance of Iroh via a custom transport.