HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
n0-computer
iroh
Rust2022–2026
n0-computer / iroh

iroh

IP addresses break, dial keys instead. A library that adds QUIC + NAT Traversal to your apps.

24Distinct people
31Mentions
0Explicit recommenders
13KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

IP addresses break, dial keys instead. A library that adds QUIC + NAT Traversal to your apps.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year31 dated mentions

Observed mentions: 2022-09-06 18:02:23 UTC to 2026-08-26 19:00:40 UTC.

0510152022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments20242025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 14 mentions; 2 submissions, 12 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC202
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC817
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC14212
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC606

What Hacker News says

31 sources
I built something similar by forking Vibetunnel[0] and turned into a Next.js app that runs on my laptop. Then I connect my laptop and phone to the same Tailscale network and use the 100.xx on my phone to access the same application on my phone. Your app is better than the web app I have since it's native, but we still need to use your CLI and daemon to work. Would be really nice if you supported Tailscale. Also take a look at Zedra[1]. It's similar to yours and powered by Iroh[2] which will replace the need for Tailscale. 0. https://github.com/amantus-ai/vibetunnel 1. https://github.com/tanlethanh/zedra 2. https://github.com/n0-computer/iroh
In Show HN: Shellular – run Claude Code, Codex, Pi from your phone
As I see, it tries to explain. But as someone who's not a network specialist, I fail to see how this is not a glorified P2P DNS. Maybe this example helps: https://github.com/n0-computer/iroh#rust-library const ALPN: &[u8] = b"iroh-example/echo/0"; let endpoint = Endpoint::bind().await?; // Open a connection to the accepting endpoint let conn = endpoint.connect(addr, ALPN).await?; // Open a bidirectional QUIC stream let (mut send, mut recv) = conn.open_bi().await?; // Send some data to be echoed send.write_all(b"Hello, world!").await?; send.finish()?; // Receive the echo let response = recv.read_to_end(1000).await?; assert_eq!(&response, b"Hello, world!"); // As the side receiving the last application data - say goodbye conn.close(0u32.into(), b"bye!"); // Close the endpoin
Read the rest
t and all its connections endpoint.close().await;
In Iroh 1.0
Look into Sendme [0] and AltSendme [1] (which is a GUI around the former), they use Iroh [2] which is an open-source encrypted peer-to-peer relay service to send data so there are no limits whatsoever for sending and receiving files, because there's no central server. From my earlier comment about a similar thread a couple days ago about which file sharing apps people use [3]: [0] https://github.com/n0-computer/sendme [1] https://github.com/tonyantony300/alt-sendme [2] https://github.com/n0-computer/iroh [3] https://news.ycombinator.com/item?id=47906587
In Localsend: An open-source cross-platform alternative to AirDrop
We are open to suggestions :) And the very first generation of P2P Matrix was indeed built on libp2p (and Protocol Labs led Element's Series B). However, the thought experiment here is whether we can get away without a full global P2P overlay at all in the interests of keeping it simple & stupid. We might well end up back at libp2p tho! Edit: another option on our todo list to look into more is Iroh (https://github.com/n0-computer/iroh)
In Ask HN: What Are You Working On? (Nov 2025)
You're right, but not in the usual way hah. I started programming in the late 1980s with HyperCard, then used mostly C++ in the 90s, and have seen the rise and fall of various paradigms that felt eternal. I mean at one time, Java felt untouchable. I think that Rust is making an admiral attempt to attack challenges that have already been solved better in other ways. I just don't have much use for its arsenal. For example, I wasted 2 years of my life trying to write a NAT-punching peer to peer networking framework for games around 2005, but was first exposed to synchronous blocking vs asynchronous nonblocking networking in the late 90s when I read Beej's Guide to Network Programming: https://beej.us/guide/bgnet/ I was hopelessly trying to mimic the functionality of libraries like RakNet and Zoidcom without knowing some fundamentals that I w
Read the rest
ouldn't fully understand for years: https://www.reddit.com/r/gamedev/comments/93kr9h/recommended... 20 years later, Rust has iroh: https://github.com/n0-computer/iroh I realize there is some irony in pointing to a Rust library as a final solution. But my point is that when developers reached high levels of financial success and power, they didn't go back to address the fundamentals. NAT was always an abomination to me. And as far as I know, they kept it in IPv6. Someone like Google should have provided a way to get around it that's not as heavy as WebRTC. So many developer years of work have been wasted due to the mistakes of the status quo. So that we wander in the desert for years using lackluster paradigms because we don't know that better stuff exists. Knowing what I know now, I would have created open source C (portable) libraries to solve NAT punching, state transfer with a software transactional memory (STM) or Raft, entity state machines (like in Unity), movement prediction/dead reckoning, etc etc etc to form the basis of a distributed computing network for virtual worlds and let the developer community solve that. Someone will do that in a year or two with AI now I assume. Ok you kinda got me. I realize after writing this out that I wouldn't use Rust for new work, but it's not so much about the language itself as building upon proven layers to "get real work done". The lower the level of abstraction, the harder that is to do. So it's hard for me to see the problem which Rust is trying to solve.
In Cancellations in async Rust
The use case I always think of is the developer experience for regular hobbyist and workaday devs writing their apps with local-first sync. Apple comes close with CloudKit, in that it takes the backend service and makes it generic, basically making it an OS platform API, backed by Apple's own cloud. Basically cloud and app decoupled. But, the fundamental issue remains, in that it's proprietary and only available on Apple devices. An open source Firebase/CloudKit-like storage API that requires no cloud service, works by p2p sync, with awesome DX that is friendly to regular developers, would be the holy grail for this one. Dealing with eventually consistent data models is not so unusual these days, even for devs working on traditional cloud SAAS systems, since clouds are distributed systems themselves. I would be very happy to see such a th
Read the rest
ing built on top of Iroh (a p2p network layer, with all the NAT hole punching, tunnelling and addressing solved for you) for example, with great mobile-first support. https://github.com/n0-computer/iroh
In Why haven't local-first apps become popular?
Very cool! I have spent the last few months on and off thinking about creating something like this for some projects of mine. I've been looking into ATProto [0], IPFS [1], Radicle [2], and Iroh [3]. I was tending towards Iroh lately but I also like ATProto so going to check out this FAIR [4] protocol because I'm all for having widely adopted common protocols. 0: https://atproto.com/ 1: https://www.ipfs.tech/ 2: https://radicle.xyz/ 3: https://github.com/n0-computer/iroh 4: https://github.com/fairpm/fair-protocol
In The FAIR Package Manager: Decentralized WordPress infrastructure
I am a contributor to Iroh ( https://github.com/n0-computer/iroh ), an open source library for direct QUIC connections between devices that can be behind a NAT. Our library is general purpose and can be used whenever you need direct connections, but on top of Iroh we also provide iroh-blobs, which provides BLAKE3 verified streaming over our QUIC connections. Blobs currently is a library that provides low level primitives and point to point streaming (see e.g. https://www.iroh.computer/sendme as an example/demo ) We are currently working on extending blobs to also allow easy concurrent downloading from multiple providers. We will also provide pluggable content discovery mechanisms as well as a lightweight content tracker implementation. There is an experimental tracker here: https://github.com/n0-computer/iroh-experiments/tree/main/co... D
Read the rest
ue to the properties of the BLAKE3 tree hash you can start sharing content even before you have completely downloaded it, so blobs is very well suited to the use case described above. We already did a few explorations regarding media streaming over iroh connections, see for example https://www.youtube.com/watch?v=K3qqyu1mmGQ . The big advantage of iroh over bittorrent is that content can be shared efficiently from even behind routers that don't allow manual or automatic port mapping, such as many carrier grade NAT setups. Another advantage that BLAKE3 has over the bittorrent protocol is that content is verified incrementally. If somebody sends you wrong data you will notice after at most ~16 KiB. Bittorrent has something similar in the form of piece hashes, but those are more coarse grained. Also, BLAKE3 is extremely fast due to a very SIMD friendly design. We are big fans of bittorrent and actually use parts of bittorrent, the mainline DHT, for our node discovery. Here is a talk from last year explaining how iroh works in detail: https://www.youtube.com/watch?v=uj-7Y_7p4Dg , also briefly covering the blobs protocol.
In Ask HN: Why is there no P2P streaming protocol like BitTorrent?

Showing the 15 most recent of 31 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.