noq, noq, who's there?
Introducing noq: n0's QUIC implementation










Fast connections.
Anywhere.
Forever.
Send data to any device running anywhere, big or small — cloud servers, tablets, or embedded systems. The core technology is open source, so you're never locked in.
“Doubling the network speed halves our compute budget. That's the difference between a $1M model and a $500K model.”
Save cloud costs
Peer-to-peer connections bypass NATs and firewalls. Relays keep data flowing when direct connections can't be made.
Sync any kind of data
Files, structured data, video, RPC — or write your own protocol.
E2E Encrypted, Always
Every connection is end-to-end encrypted over QUIC.
Distributed AI Training
Train foundation LLMs with compute distributed around the world, across AWS, GCP, Azure, and self-hosted infrastructure.

Video Streaming at Global Scale
Streams video between millions of devices around the world every day.

Data sync & P2P Web Apps
Powers 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.
iroh provides opt-in observability and network diagnostics — track connection health and throughput across all your devices and services.
Monitor your AppDozens of open-source, composable protocols built on top of iroh. Mix & match to get the feature set you need.
// a program that creates two endpoints & sends a ping between them
use anyhow::Result;
use iroh::{Endpoint, protocol::Router};
use iroh_ping::Ping;
#[tokio::main]
async fn main() -> Result<()> {
// create the receive side
let recv_ep = Endpoint::builder().bind().await?;
let recv_router = Router::builder(recv_ep.clone())
.accept(iroh_ping::ALPN, Ping::new())
.spawn();
recv_ep.online().await;
let addr = recv_router.endpoint().addr();
// create a send side & send a ping
let send_ep = Endpoint::builder().bind().await?;
let send_pinger = Ping::new();
let rtt = send_pinger.ping(&send_ep, addr).await?;
println!("ping took: {rtt:?} to complete");
Ok(())
}Introducing noq: n0's QUIC implementation
Release of iroh v0.97.0