Iroh
I make your peer to peer transfer go brrrrr
I'm iroh.computer from the folks at n0.computer
- It's been a while, but: I'm 0.96 versions old now! This has been a major undertaking. My inner functioning has been comprehensively reworked and is now based on QUIC multipath and hole punching*within* the QUIC networking stack. This release is the biggest step towards 1.0 for me. Read more:
- we have an all new docs site! More examples! Better Explainers! Come check it! docs.iroh.computer
- My main branch now has holepunching implemented *inside* the QUIC stack. We've implemented the QUIC multipath draft to keep track of all the paths inside the QUIC networking stack. CI is green and we've already punched a lots of firewalls in the real world! #rustlang github.com/n0-computer/...
- That said, there's more work to ensure this version is very performant and super reliable. We'll continue to add improvements and do more testing before we release this in a new version. Anyhow - still a great time to celebrate, a huge effort be the team!
- Our friends from the #WillowProtocol have released Ufotofu: an alternative to #rustlang streams, sinks, AsyncRead & AsyncWrite. They rather think of it as producers and consumers. Check it out! It's a very principled and consistent design. worm-blossom.org/ufotofu/
- The amazing folks making this can also be found on bluesky @worm-blossom.org!
- We're late posting this on the main account - but yeah, check this out!
- 🎉 iroh v0.95 - New Relay, New Errors, Improved Connection API - relay on the NA west coast - replaced snafu with n0-error, a new error crate - infallible remote_id and alpn methods - Overhauled 0-RTT API iroh-blobs can now compile to WASM with an in-mem store! www.iroh.computer/blog/iroh-0-...
- my v0.94 release is a biggie. Endpoint presets, dynamic relay map changes, and the word "node" is ded to me www.iroh.computer/blog/iroh-0-...
- sup! my v0.93 release is out and now you can just call .online() if you want to know if you're online. It's great. Check it out. www.iroh.computer/blog/iroh-0-...
- Sup frens I have a DHT protocol now: www.iroh.computer/blog/lets-wr...
- *community intensifies* The two biggest wins of my latest release are from outside contributors! www.iroh.computer/blog/iroh-0-...
- Did you know that we like QUIC? We like it so much we're replacing our use of STUN over UDP with QUIC address discovery! We've contributed an implementation of that standard to the quinn #rust library, and are now using it. www.iroh.computer/blog/qad
- As a bonus, this blog post goes into some details on why we even need things like STUN/QUIC address discovery. It's a great read even just for the hole-punching knowledge you gain along the way! (Also goes great together with the QUIC multipath blog post www.iroh.computer/blog/iroh-on...)
- We're trying to have the best backtraces and error handling in the #rust library ecosystem. We've landed on snafu and our own companion crate n0-snafu. And we wrote about that! www.iroh.computer/blog/error-h...
- We want you to build protocols! For that, you need to know about message framing. Conveniently, we produced a video about doing this in #rust on top of #QUIC with iroh :) www.youtube.com/watch?v=h6bB...
- I am (going to be) multi-patheded
- the running gag around the office is "multipath will fix this", so we wrote a blog post about what the heck multipath is & why it's going to make everything better: www.iroh.computer/blog/iroh-on...
- I'm thoroughly enjoying my breaking 0.9x releases ahead of 1.0 😁 This time: A new relay protocol! But: This gives me a better handshake 🤝, some future optimization potential 🚀 and removes non-WebSocket code paths 🔥 All about this & what it means for relay compatibility in the release blog post:
- orange site giving dumbpipe.dev some love on a sunday 😎
- The actor pattern works really well in #async #rust. What if you could take your actors and take them over the network? Sometimes. If you want to. This has been a pattern we (the iroh team) used for some CLIs and networked tools. And now we wrote about a crate we use to do that: IRPC! ("iroh RPC")
- PS: Even if you don't use the local transport for IRPC, a look at this might be good! There's lots of folks using this so they don't have to fiddle with encoding/decoding networking messages or dealing with byte streams in iroh. Instead, you just have request/response structs and send them around.
- I'm not even an adult 1.0 library yet and I'm already buried in cool projects of all stages we haven't talked about yet! So let me introduce you to 11 cool projects from our awesome list today 😄 github.com/n0-computer/...
- Aster is a music player that streams your personal music collection over iroh connections. It also implements auth/device management using a simplified version of the algorithm in the decentralized key agreement paper! github.com/hazelmeow/as...
- Ethersync enables real-time collaborative editing of local text files. You can use it for pair programming or note-taking, for example. It's the missing real-time complement to Git! github.com/ethersync/et...
-
View full threadAnd lastly for this round, huge shoutout to saffroner from our discord who built a custom protocol for board games, learning the ins & outs of iroh along the way 😊 github.com/wade-cheng/p... Check out the netcode at github.com/wade-cheng/s...
- The "Stop Killing Games" initiative is very close to 1M EU signatures! (the requirement for the commission to take action) The goal is to prevent games publishers and developers from killing games after you've bought them. Let's talk about this & what that's go to do with us 👀 #stopkillinggames
- First off, what are we trying to do here? Let's take an example: Ubisoft's car racing video game "The Crew". In 2024, the game servers shut down. And even though an early version of the game had a singleplayer version available, even that wouldn't be accessible to anyone who purchased the game.
- The reason, Ubisoft is saying, are "upcoming server infrastructure and licensing constraints". This is what we're trying to prevent. From day one, companies developing games should take a game's longevity into account!
-
View full threadAs a parting note, let me show you that we can actually #stopkillinggames with the example of "Spellbreak": The developers of this game got bought by Blizzard, but a couple of months later, they released a version on itch.io, and among its features, peer-to-peer multiplayer. Cheers!
- New Release! v0.90.0! www.iroh.computer/blog/iroh-0-... We’re jumping to v0.90 as the canary release series leading to 1.0. If you’re cool working on the bleeding edge, use 0.90. If you want to wait for 1.0, stick with v0.35.x. until we cut 1.0 toward the end of the year. We'll support both.
- Who's got 0 thumbs & is trending on github? github.com/trending/rust
- Look mom I'm famous. oh shoot I forgot I'm software & don't have a mother.
- Hacker news is showing @iroh.computer some love, thanks to whoever submitted our project!
- It's been a while, but I've gotten 0.35 versions old yesterday! Really getting close to becoming an adult 1.0 #rust library, in fact - the next release will be my release candidate. This release contains metrics collection improvements and some small API tweaks ✌️ www.iroh.computer/blog/iroh-0-...
- Ready to do some weekend hacking? Perhaps integrate peer to peer multiplayer in your #godot game? Someone built a Godot multiplayer peer implementation using me! github.com/tipragot/god... #gamedev #rust
- This is using the QUIC datagram extension to be able to send unreliable datagrams over an encrypted QUIC connection. We're excited to see more people adopt iroh for games, because it's a good idea to do so! We've written about this before:
- You might be surprised/not surprised to hear that (1) and (3) are very similar :)
- My heuristic after touching the p2p stove: 1. Follow @iroh.computer for the cutting edge. 2. Need p2p? Can make it work on BitTorrent? Use BitTorrent. 3. Need high availability + to keep long-tail content alive? Copy Nostr. Multiple HTTP relays. Security rooted in user-controlled keys, not origin.
- Yes, iroh is built on an open set of relays (some say it's "federated" but technically the relays don't talk to each other but what do words mean anyways), and yeah each device gets to keep their own keys!
- And yep, we're aware of @gordon.bsky.social's writing 😅 newsletter.squishy.computer/p/natures-ma...