iroh 0.24.0 - Upgrading to Quinn 11
Iroh 0.24.0 release
the networking stack for user agency
Iroh gives you an API for dialing by public key. You say “connect to that phone”, iroh will find & maintain the fastest connection for you, regardless of where it is.
“In stark contrast to other p2p & dweb technologies we've played with - which are exciting due to their implications for the future - Iroh brought instant gains in our present."
- The Weird Team
An ecosystem of ready-made, composable protocols are built on top of iroh.
Mix & match to get the feature set you need.
Resumable, verifiable data transfer
Broadcast messages to groups of nodes by topic.
Simple node-to-node message passing
Realtime, multiwriter, key-value sync
multiwriter, key-value sync with fine-grained access control
CRDT-powered collaborative documents
Don't see a protocol you need? Build your own! Iroh gives you a reliable foundation for building distributed systems that reach the edge. The rest is up to you.
Custom Protocol DocsAll commits to iroh's main branch run through a growing set of simulations & tests
Iroh Perf SiteIroh is running in production on hundreds of thousands of devices, on all major platforms.
Iroh powers multi-device backup & live connections for in-chat WebXDC apps
Iroh supports a growing set of languages, embedding nodes directly in your project without any need to call out to an external API
start buildinguse anyhow::Result;
use futures::stream::TryStreamExt;
#[tokio::main]
async fn main() -> Result<()> {
// build the node
let node = iroh::node::Node::memory().spawn().await?;
// create 2 documents
let _doc_0 = node.docs.create().await?;
let _doc_1 = node.docs.create().await?;
// list newly created docs
println!("List all docs:");
let mut docs = node.docs.list().await?;
while let Some((doc_id, _capability)) = docs.try_next().await? {
println!("{doc_id}");
}
Ok(())
}
Iroh 0.24.0 release
Iroh 0.23.0 release
Closing a QUIC connection without losing any data, using the Quinn API.
Iroh 0.22.0 release