redot1

Iroh 1.0 – Dial Keys, not IPs


It’s a simple idea really, and it’s the right abstraction for the future of the internet. IP addresses can break, without warning, and it’s outside of your device’s control. Keys, however, are created & controlled by you. They stay the same as your device moves, and are yours to throw away, or not. IP addresses can be private and inaccessible behind firewalls, but with iroh your device can be securely addressable no matter where it is.

We think this is how the internet should work, which is why iroh exists, and today we’re delighted to announce iroh version 1.0.

This is our first stable release, but the project has grown significantly over the 65 versions that led to 1.0. iroh is already used all over the place. The public relays we run have seen more than 200 million endpoints created, in the last 30 days alone. Developers are using iroh to stream video, train large language models, talk to agents, secure chats, play games, send files, and many more things than we could jam into this list. Iroh is a fundamental technology aimed at a fundamental shift in the internet, and it’s running on millions of devices today.

After more than 4 years of building in the open, we have a foundation we’re both proud of.

  • We shifted onto open standards, preferring IETF drafts whenever possible
  • We built our own implementation of QUIC multipath, so iroh can build & manage multiple routes within the same connection, and hot swap paths as conditions change
  • We implemented QUIC NAT traversal, so we can establish direct connections while keeping connection details encrypted
  • We added full local-first configurations so iroh can find & connect to local devices, without internet access
  • We built & continually check that iroh can compile to WASM & run in the browser
  • We worked with power users to add hooks, so you can inject logic to control how connections should work
  • We’ve even added support for custom transports, so you can plug in technologies like Bluetooth Low-Energy (BLE), LoRa (under construction), WiFi Aware, or even Tor to build connections, and all of this fits under the same dial-by-key abstraction

The power of that key can’t be overstated. We use it to secure the connection. And because all data that comes from the connection is secured by that key, we can build up from that same key into identity, permissions, and attribution. We can also use that same key as an address we can dial, no matter where it is in the world. It turns the internet into a secure localhost.

Iroh connections are also far more efficient. It’s normal to see 95% of data transferred in a connection pass directly between devices. Going direct means fewer hops through the cloud, which lowers your egress bill. It’s also fewer hops through routers, which means the internet is more efficient overall.

We previously paused FFI support because of maintenance overhead with API churn and promised to bring it back with a stable 1.0 API. Now we’re follwing through on this promise: In addition to the Rust crate, we now officially support Python, Node.js, Swift, and Kotlin. This makes your application use case even easier, making it possible to embed iroh into your swift iOS application or your Kotlin Android app.
Check out the documentation and generated API docs.

Iroh version 1.0 asserts stability for both the wire protocol and language APIs: an iroh v1 endpoint will be able to communicate with another iroh v1 endpoint, regardless of minor version or language.

In the future we may version these two aspects independently, for example: we may release version 2 of a given language API, but keep compatibility over the wire. Any change that affects the wire stability of iroh will always coincide with a major release.

Version 1.0 is the first major release of iroh, which we’re announcing in conjunction with our support schedule for customers: Read our support schedule

In short:

  • Major and minor versions after 1.0 are supported on a schedule.
  • The 0.35 minor version won’t receive further releases. Public relay support for 0.35x continues through Dec 31, 2026, more on that in the section below.
  • We do not plan to support canary (0.9x) and release candidates (1.0.0-rcX) after today.

It’s important to note there are a significant number of bug fixes and improvements in 1.0, so if you encounter an issue on an earlier release we want you to try updating to the 1.0 to ensure it is still an issue there before opening a bug report.

We maintain a set of public relays, most commonly accessed via the “n0” preset for building an endpoint.

Release Final day of public relay operation
v1.0 until End of Life
v0.35x Dec 31, 2026
v0.9x & v1.0.0-rcX Sept 30, 2026

We will bump public relays to their latest version shortly after each release, usually within 24 hours. Wire-breaking relay changes will get new URLs so older clients keep working.

As always, relay binaries themselves are open source, and we offer hosted relays through iroh services. Public relays are rate-limited for relayed traffic, which can change at any time.

The internet should be built on dialing keys. On connections that just work. On connections that are secure, and default to being direct. With 1.0 you now have a mature networking stack that you can put into your app with confidence. Now is the time to come build on iroh, and we can’t wait to see what you come up with.

Check out the iroh quickstart guide for application developers.

Join the discussion on reddit | hackernews | bluesky | x.com

Iroh is a dial-any-device networking library that just works. Compose from an ecosystem of ready-made protocols to get the features you need, or go fully custom on a clean abstraction over dumb pipes. Iroh is open source, and already running in production on hundreds of thousands of devices.
To get started, take a look at our docs, dive directly into the code, or chat with us in our discord channel.



Source link