iroh-v0.5.1
n0-computer/irohiroh-v0.5.1Jul 18, 2023by dignifiedquire
AI Summary
Focuses on connectivity improvements including NAT traversal, hole punching, and automatic relaying, along with generic collections and pluggable authentication.
Key Highlights
- Built-in NAT traversal, hole punching, and automatic relaying
- Generic collections and pluggable authentication
- Split into multiple crates: iroh, iroh-bytes, iroh-net, iroh-metrics
- Improved peer discovery capabilities
New Features
- NAT traversal and hole punching
- Automatic relaying
- Generic collections
- Pluggable authentication
- Crate reorganization
Full Release Notes
> 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)](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`]