frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Iroh: A library to establish direct connection between peers

https://github.com/n0-computer/iroh
103•gasull•5h ago

Comments

ridiculously•4h ago
I was never angry with you. I was sad, because I was afraid you'd lost your route.
softfalcon•4h ago
Sharing tea with a fascinating stranger is one of life’s true delights.
dignifiedquire•3h ago
this made my day
schainks•2h ago
Failure is only the opportunity to begin again. Only this time, more wisely.
tyoung•1h ago
Makes me cry everytime.
ventare•38m ago
This may be, the worlds most perfect comment. Bravo.
kubafu•15m ago
I came here for this. Thanks!
conradev•3h ago
Iroh is very cool and their YouTube explainers are pretty great: https://youtube.com/@n0computer

I just need good FFI now, which is on the roadmap!

makeworld•2h ago
Can't wait to be able to use it in Go or Python :)
aquariusDue•3h ago
I attended a workshop for iroh a while ago and really enjoyed it, and from what I can tell on the Discord server the folks developing it are gearing for a 1.0 release soon-ish.

There's also Dumb Pipe and SendMe which are demos (I believe) built on iroh to showcase some of its uses, and at the workshop we were shown a video of a startup using iroh for video game streaming (something similar to the old OnLive).

From what I understood (in spite of my lack of networking knowledge) and if I remember correctly clients have to be on the same relay (I think there's one for Europe and one for North America) and they use the Bittorent DHT Mainline (I had to google the iroh blog post about it because I forgot the exact name) for discovery. There was some stuff about BGP too, but it went over my head sadly.

I hope somebody more knowledgeable chimes in because iroh is really exciting, I feel like I could throw together a p2p application and it wouldn't be a daunting task due to it.

b_fiive•2h ago
(disclosure: I work on iroh): you're selling yourself short! All of this is accurate, except for maybe the BGP stuff :)

Dumb Pipe & Sendme me are indeed demos, we do provide a set of default, public relays to use for free. The relay code is also open source, and if you want to pay us we can run a network for you.

We try to provide a few different options for discovery, the one we think has the most general utility is a custom DNS server, but both local mDNS and Bittorrent Mainline are also pluggable options.

b_fiive•2h ago
hey I work on this! AMA!
xeonmc•2h ago
Can this be a made to work as an adapter to play older, raw UDP multiplayer games with random strangers? E.g. telling someone in Twitch chat “bro 1v1 me in CS1.6, here’s my Iroh ticket:”, they put it into their “InstaFrag NetDriver” Windows Client and you both launch CS1.6 and just start playing in an ad-hoc p2p lobby.

With Tailscale this use case is very cumbersome as you’d need to add them to your tailnet and configure access controls to make it an ephemeral connection.

b_fiive•2h ago
There's no reason this _can't_ be built. The thing that's missing is simulating a raw UDP socket.

We could adapt the pattern from dumbpipe wrapping a TCP listner: https://github.com/n0-computer/dumbpipe?tab=readme-ov-file#t... which is exactly the "here join this ticket" you're describing

binary132•1h ago
This is very much like my usecase too, except that I need to be able to use it via FFI since my engine is not Rust.
dignifiedquire•37m ago
we do have https://github.com/n0-computer/iroh-c-ffi which is lowlevel but directly usable from any c like language
pluto_modadic•2h ago
do keys have a defined prefix or identifier? e.g., Veilid uses vld0? pkarr uses pk:?
b_fiive•2h ago
keys are always ED25519, we use raw public key bytes, without prefixes.

Applications are more than welcome to use prefixes, but the use of ED25519 is not configurable

rklaehn•2h ago
To expand on this: iroh is a rust library. A NodeId is just an Ed25519 public key, but of course it has a distinct type. If in the future we want a different public key standard, it would be a different rust type.

Encoding keys is mostly left to the user. The only exception are tickets. Tickets are postcard serialized and have a version field, so we can keep tickets compatible if we ever want to use a different public key standard or hash function.

(disclaimer, I also work on iroh)

rrauch•1h ago
I've been following Iroh's development for quite some time now and I have to say that I've been really impressed with what you've built so far.

At one point I'm going to use Iroh (or something heavily inspired by it) as the transport layer for a project I am working on. Can't wait.

I do have one question though while I have your attention: what was the reason you decided to use the Ed25519 public key as the NodeId directly? I mean, why not derive the NodeId from the public key instead (by hashing it for example)? Then the protocol itself would not be so tightly bound to Ed25519. A little indirection here would have been useful imho.

It's the one thing I have been wondering about Irohs design that I haven't really been able to answer by myself.

Anyways, great work! Keep it up!

ndyg•2h ago
Iroh is intriguing. Dumbpipe is magical, and its implementation is easy to understand. I use dumbpipe daily to expose cross-stream (https://github.com/cablehead/xs) stores I run on different servers to my local laptop's `xs` client.
cprecioso•1h ago
A bit off topic I guess, but what’s your usage for xs? I read the website, I think that I understand it and find it intriguing, but I’m not sure what one would use it for.
bestouff•2h ago
This thing is written in Rust. I wanted to use it on an embedded system in Rust (Embassy) using a CAN transport but unfortunately there's neither a no_std version nor a CAN plugin. Otherwise it looks good.
b_fiive•2h ago
Yeah, no_std is going to be very hard. We need a no_std implementation of QUIC that can be wielded by mere mortals first, which I don't think we'll be able to start on for at least a year.

Right now we can get down to an ESP32, which we think is a decent start.

akavel•1h ago
Hm, how does this answer relate to the answer you gave to this comment: https://news.ycombinator.com/item?id=44381084 ? where, as far as I understand, you say it's possible to swap out quic for something else? asking sincerely, I'm confused here.
b_fiive•19m ago
ah very sorry, I can see how this isn't all that clear. In the comment you've mentioned when I say "custom protocol" I mean a custom QUIC ALPNs: https://datatracker.ietf.org/doc/html/rfc7301

When we talk to mainline it's for discovery, which is separate from iroh connections, which always uses QUIC. Specifically: our fork of quinn, an implementation of QUIC in rust. Iroh is tightly coupled to quinn, and isn't swappable. Getting no_std support for us basically boils down to "can we get quinn to support no_std?". For that, see: https://github.com/quinn-rs/quinn/issues/579

dignifiedquire•2h ago
this would be great to have, but as we rely heavily on quic, we first need an implementation of quic in no_std which is the current biggest challenge
b0a04gl•2h ago
lets say if i someone wants to keep using bittorrent dht for peer finding but swap out quic for something else maybe grpc, does the lib support that split clean? asking from a modular embed first tooling pov, where discovery logic needs to outlive or outswap transport depending on deployment
b_fiive•2h ago
yep totally doable. You'd use iroh configured with mainline, Then write a custom protocol for the grpc bit: https://www.iroh.computer/docs/protocols/writing

We use this a bunch for writing rpc protocols on iroh: https://github.com/n0-computer/irpc , but there's no reason you couldn't write one with grpc.

eminence32•1h ago
Some years ago, "iroh" was supposed to a replacement for ipfs. However since then, they (very smartly, in my opinion) dropped those ambitions and are just focused on being a high-quality library for anyone writing a P2P app (like ipfs).

I often see projects attempting to be a universe tool to solve every possible problem, and I think the iroh folks were smart to scale back and narrow their focus

dignifiedquire•40m ago
appreciate the feedback, it was a hard decision to make, but has felt more right everyday since we made it
Ingon•1h ago
I work on connet [1] and from what I've seen iroh seem pretty cool. A few random thoughts I had while watching the presentations/reading the docs:

* the relays serve both for discovery and relay. In connet these are separate responsibilities, e.g. it has control server for discovery and a relay server for relaying connections.

* it seems that the connections to the relays in iroh are TCP (at least what was said in one of the videos), while connet uses QUIC in all cases. This probably makes iroh more resilient, but multiplexing on top of TCP might suffer from head of line blocking.

* it is pretty cool that iroh can seamlessly upgrade from relay to direct connection, connet doesn't do that on a connection level. It will however use direct in the subsequent virtual connections.

* using ALPNs for protocol selection is pretty cool, connet only offers "virtual connections" protocol, where one of the peers is "server" and the other is a "client".

* since there is a separate discovery server (with auth), in connet the endpoints are named separately with logical names, they don't represent peers necessarily. Because of this, you can have multiple peers with "server" role and "client" roles.

Anyhow, thanks for posting this, iroh looks great and I will draw some inspiration from it for sure.

[1] https://github.com/connet-dev/connet

Why HS2 cost so much

https://martinrobbins.substack.com/p/hs2-and-the-slow-decay-of-britain
1•rwmj•1m ago•0 comments

Show HN: An App that turns your phone into a tour guide

https://tripoclock.com/
1•hopeadoli•1m ago•0 comments

Games Run Faster on SteamOS Than Windows 11, Ars Testing Finds

https://games.slashdot.org/story/25/06/25/2034243/games-run-faster-on-steamos-than-windows-11-ars-testing-finds
1•austinallegro•2m ago•0 comments

Show HN: LuxWeather – ad-free pixel art weather site made with asp.net and Htmx

https://luxweather.com/
2•thisislux•3m ago•0 comments

Federated Credential Management (FedCM) API

https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API
1•bpierre•4m ago•0 comments

Use artifacts to visualize and create AI apps without ever writing code

https://support.anthropic.com/en/articles/11649427-use-artifacts-to-visualize-and-create-ai-apps-without-ever-writing-a-line-of-code
1•ianrahman•11m ago•1 comments

Fear of deployments is the largest tech debt

https://www.aviator.co/podcast/charity-majors-fearless-deployments
1•Liriel•11m ago•0 comments

Restmail – sendmail-compatible CLI for Gmail and outlook

https://github.com/tonymet/restmail
1•tonymet•14m ago•0 comments

Shifting Forces: The Evolving Debate Around Dark Energy

https://undark.org/2025/06/25/evolving-debate-dark-energy/
1•EA-3167•16m ago•0 comments

Aaron Sorkin's The Social Network sequel officially in development

https://www.theguardian.com/film/2025/jun/25/aaron-sorkins-the-social-network-sequel
1•jmsflknr•16m ago•0 comments

CUDA Ray Tracing 2x Faster Than RTX: My CUDA Ray Tracing Journey

https://karimsayedre.github.io/RTIOW.html
2•ibobev•18m ago•0 comments

Spatial learning circuitry fluctuates in step with estrous cycle in mice

https://www.thetransmitter.org/neuroendocrinology/spatial-learning-circuitry-fluctuates-in-step-with-estrous-cycle-in-mice/
1•domofutu•21m ago•0 comments

Alijah Arenas on Cybertruck crash: 'Fighting time' to escape

https://www.espn.com/mens-college-basketball/story/_/id/45583696/alijah-arenas-crash-fighting-escape-burning-truck
1•tusslewake•27m ago•1 comments

The Fastest Motorcycle Hearse in the World

https://motorcyclefunerals.com/suzuki-hayabusa
1•cainxinth•28m ago•0 comments

Joey Swoll, gymcreeps and trolling: inside the TikTok workout wars (2023)

https://www.gq-magazine.co.uk/culture/article/joey-swoll-interview-gymcreeps-trolling-tiktok-gym-wars
1•mellosouls•30m ago•0 comments

"Nobody Expected This": Earth's Rotation Will Speed Up in July and August

https://www.iflscience.com/nobody-expected-this-earths-rotation-will-speed-up-in-july-and-august-bucking-the-downward-trend-79757
2•Bluestein•30m ago•0 comments

Show HN: Bringing back Snacklish (via a bunch of prior samples and iteration)

https://github.com/exogen/snacklish
2•exogen•30m ago•0 comments

Nvidia Ruffles Tech Giants with Move into Cloud Computing

https://www.wsj.com/tech/ai/nvidia-dgx-cloud-computing-28c49748
3•bookofjoe•34m ago•1 comments

Matter vs. Force: Why There Are Two Types of Particles

https://www.quantamagazine.org/matter-vs-force-why-there-are-exactly-two-types-of-particles-20250623/
1•kjhughes•36m ago•0 comments

Meta Beats Copyright Suit from Authors over AI Training on Books

https://news.bloomberglaw.com/litigation/meta-beats-copyright-suit-from-authors-over-ai-training-on-books
3•jmsflknr•39m ago•0 comments

Show HN: Towards agentic Graph RAG: Enhancing graph retrieval with vector search

https://blog.kuzudb.com/post/enhancing-graph-rag-with-vector-search/
1•laminarflow027•40m ago•0 comments

Coding in a Material World

https://deadsimpletech.com/blog/material_girl
2•todsacerdoti•41m ago•0 comments

CLI coding agents battle royale

https://twitter.com/sigkitten/status/1937950811910234377
1•tosh•43m ago•0 comments

Vibe Coding Showcase: 12 Projects Built by Everyday People

https://kp.substack.com/p/vibecodingshowcase
1•trulykp•44m ago•0 comments

Twin Cities grocers facing disruptions in cyberattack on major distributor

https://www.startribune.com/cub-why-phamracy-closed-unfi-cyberattack-whole-food-delivery-restock-shelves/601370497
1•greenie_beans•47m ago•0 comments

Running large language models at home with Ollama

https://chrisbeckman.dev/posts/home-ollama-setup
2•chris-beckman•49m ago•0 comments

ZKsync's Airbender Helps Prove Ethereum Blocks in Under 35 Seconds on Single GPU

https://unchainedcrypto.com/zksyncs-airbender-helps-prove-ethereum-blocks-in-under-35-seconds-on-single-gpu/
2•wslh•49m ago•0 comments

How to find a job in tech in 2025

https://vibeinterview.com/blog/how-to-find-a-job-in-tech-in-2025
2•egze•54m ago•0 comments

Show HN: Deglaze Me – A Chrome extension to strip the sycophancy from ChatGPT

https://github.com/althea-tfyqa/deglaze-me
2•althea_tx•54m ago•1 comments

Show HN: Delfyn, AI Agent to help businesses get paid faster

https://www.delfyn.co/
1•jhack88•54m ago•0 comments