v0.5.1 - Connectivity Intensifies
First you have to find one another, before you can interact.
This release is all about finding and connecting with your peers. Before iroh
could only connect with peers that were directly reachable, eg. static IP address or local LAN peers. Thanks to NATs and the various complications of IPv4 and IPv6 these are not that many machines in the world, and especially mobile devices are hard to discover.
So we are proud to present the first version of iroh
with builtin NAT traversal, hole punching and automatic relaying when everything fails.
If you want to find out the details on how all of this works, header over to the [Iroh Hole Punching](https://www.notion.so/Iroh-Hole-Punching-b9a38cc228fb47328a73e71d10520418?pvs=21).
Of course that is not all, we have also fixed some pesky bugs, as well added some more features, like generic collections and pluggable authentication.
On a practical side, iroh
is now split into multiple crates:
iroh
- The CLI and main library entry point.iroh-bytes
- The core data transfer protocol, including resume.iroh-net
- Nat traversal, peer management and general networking tools.iroh-metrics
- Metrics collection using prometheus
This should open up more possibilities when integrating just the pieces you need from iroh
into your app.
[Note: this ended up being 0.5.1
for iroh
and iroh-net
due to a publish issue with iroh-net@0.5.0
]