frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Dumb Pipe

https://www.dumbpipe.dev/
377•udev4096•5h ago

Comments

Liftyee•4h ago
I wonder how much reimplementation there is between this and Tailscale, as it seems like there are many needs in common. One would think that there are already low level libraries out there to handle going through NATs, etc. (but maybe this is just the first of said libraries!)
mpalmer•4h ago
This is made using iroh, which aims to be a low level framework for distributed software. Involves networking but also various data structures that enable replication and consistency between networked nodes.
danenania•2h ago
Does it include reconnection logic? I presume that's not considered "low level", but it does always annoyingly have to be reimplemented every time you deal with long-lived socket connections in production.
max-privatevoid•4h ago
iroh is meant to be this library, but there is also libp2p, which existed before iroh.
binary132•3h ago
Part of the problem with libp2p is that the canonical implementations are in Go which isn’t really well-suited to use from C++, JS, or Rust. The diversity of implementations in other languages makes for varying levels of quality and features. They really should have just picked one implementation that would be well-suited to use via C FFI and provided ergonomic wrappers for it.
cr125rider•4h ago
Isn’t tailscale a wrapper around WireGuard? With some other hole-punch sprinkles?
nine_k•4h ago
...and DNS, and host provisioning, and SSO, and RBAC, and other stuff you need to sell to enterprises.
odo1242•3h ago
Well, WireGuard and WebRTC, but yes.

The real feature of Tailscale is being able to connect to devices without worrying about where they are.

bradfitz•3h ago
There's no WebRTC in Tailscale.
snapplebobapple•2h ago
Isnt a derp server juat webrtc with minor changes?
rollcat•2h ago
You don't need the whole of WebRTC for NAT traversal, TURN/STUN will do the job.
homebrewer•3h ago
You might be confusing it with netbird, which is the 601st implementation of a mesh network that does use both WebRTC and WireGuard.
benreesman•4h ago
Theres overlap but i can see complementary uses as well. It uses some of the same STUN-family of tecniques. I have no plans to stop using TailScale (or socat) but i think i use this every day now too.
TechDebtDevin•4h ago
Connecting phones on mobile/cignat with Tailscale is really one of the few software "Aha" moments I've had.
homebrewer•3h ago
Who cares at this point, Tailscale itself is the 600th reimplementation of the same idea, with predecessors like nebula and tinc. They came at the right time, with WireGuard being on the rise, and poured millions into advertisements that their community "competitors" didn't have since most of them isn't riding on VC money.
api•3h ago
I've met a lot of people who think Tailscale invented what it does.

Prior to Tailscale there were companies -- ZeroTier and before it Hamachi -- and as you say many FOSS projects and academic efforts. Overlay networks aren't new. VPNs aren't new. Automated P2P with relay fallback isn't new. Cryptographic addressing isn't new. They just put a good UX in front of it, somewhat easier to onboard than their competitors, and as you say had a really big marketing budget due to raising a lot when money was cheap.

Very few things are totally new. In the past ten years LLMs are the only actually new thing I've seen.

Shill disclosure: I'm the founder of ZeroTier, and we've pivoted a bit more into the industrial space, but we still exist as a free thing you can use to build overlays. Still growing too. Don't have any ill will toward Tailscale. As I said nobody "owns" P2P and they're doing something a bit different from us in terms of UX and target market.

These "dumb pipe" tools -- CLI tooling for P2P pipes -- are cool and useful and IMHO aren't exactly the same thing as ZT or TS etc. They're for a different set of use cases.

The worst thing about the Internet is that it evolved into a client-server architecture. I remain very cautiously optimistic that we might fix this eventually, or at least enable the other paradigm to a much greater extent.

rollcat•2h ago
I know it wasn't a "new" idea, but still, ZT was a paradigm shift for me. I was suddenly on the same LAN with people I cared about. Thank you for making it happen.
udev4096•2h ago
As much as hyped tailscale is, at least there is an option to fully self-host coordination server. Do you have something like that?
api•2h ago
ZeroTier controllers can be self-hosted.
gavinray•2h ago
I remember running Hamachi and NoIP DUC's (Dynamic Update Client) as a kid in late 2000's to expose private server addresses for games or for multiplayer through direct network addresses

NoIP was also the recommended "easy" option for configuring RAT (Trojan) host addresses at the time IIRC.

sergiotapia•2h ago
Hamachi was BIG in the gaming scene. I used to host a Tibia server and use it to make the server accessible to friends.
dandellion•2h ago
> put a good UX in front of it

It's good as long as everything works out of the box, but it's a nightmare when something doesn't work. Or at least that has been my experience. I'm used to always troubleshoot first when I have any issue, but with Tailscale I decided I'm done trying to fight it, next time something doesn't work I'll just open a ticket and make it the ops team problem.

api•2h ago
This is true for all systems that hide a lot of complexity. Apple is great until something doesn't work and you get things like "Error: try again later." A car is great until it doesn't start, and there are numerous reasons that can happen.
senko•2h ago
I've managed a Wireguard-based VPN before Tailscale. It's pretty straightforward[0].

Tailscale makes it even more convenient and adds some goodies on top. I'm a happy (free tier) user.

[0] I also managed an OpenVPN setup with a few hundred nodes a few decades back. Boy do we have it easy now...

conradev•2h ago
Iroh is much better suited for the application layer. You can multiplex multiple QUIC streams over the same connection, each for a specific purpose. All you need is access to QUIC, no virtual network interface.

It’s a bit like gRPC except you control each byte stream and can use one for, say, a voice call while you use another for file transfer and yet another for simple RPC. It’s probably most similar to WebRTC but you have more options than SCTP and RTMP(?).

qudat•4h ago
At pico.sh we built something similar but using SSH: https://pipe.pico.sh
geek_at•2h ago
in a direct benchmark against dumbpipe. What do you think the results would be like?
benreesman•4h ago
The marketing is brilliant. The name of the company (number0) is mad hackerish man, right up my alley in the words of Charlie Murphy. I'm going to try this in my GCE on bare metal "unvirtualizer" today (number0 is what a Linux kernel would call the first tuntap with number as its prefix if you had such a patch).

These are my kind of people!

binarymax•4h ago
Does this require a 3rd party host, or is it peer-to-peer?
nine_k•4h ago
Peer to peer, unless both ends are behind NAT, then you need to run a relay.
justusthane•3h ago
They provide a default relay. It’s not clear to me whether you can manually specify a different relay.
avtar•2h ago
They have docs for using self-hosted relays:

https://github.com/n0-computer/iroh/blob/main/iroh/docs/loca...

DrillShopper•1h ago
It'd be nice if the Getting Started link on the n0des page went here instead of immediately asking me to sign up before I know what the hell I'm signing up for
aniviacat•55m ago
Unfortunately the link to the Config struct is broken. It should be:

https://github.com/n0-computer/iroh/blob/main/iroh-relay/src...

b_fiive•2h ago
it's p2p. dumbpipe is hardcoded to use a public set of relays that we run for free (we being number 0, the team that make iroh & dumbpipe).

we can definitely add a config argument to skip the hardcoded relays & provide custom ones!

binarymax•1h ago
Thanks for the response. This statement confuses me a bit. What is a relay? Does traffic go through it at all, or is it for connection negotiation, or some of both?
4gotunameagain•16m ago
Your questions are answered in TFA, including multiple links to documentation about the process.

https://www.iroh.computer/docs/concepts/relay \

https://crates.io/crates/iroh

chrisallick•4h ago
About once or twice a year a solution comes out that does this. Here is a great one for orchestrating connections: https://docs.spacebrew.cc/
latchkey•4h ago
"In 2023 it's..."
x2tyfi•3h ago
While that may be true, the branding of this particular project seems unbeatable. A literal dumb pipe man with wacky arms. It just works.
alt227•3h ago
I feel it was the same for IFTTT over a decade ago. People always move on to the next shiny thing.
nine_k•4h ago
I wonder how much different it is from Wireguard + netcat. Both run encrypted channels over UDP, but somehow differently. What does QUIC offer that Wireguard does not?
TheDong•3h ago
QUIC includes a standard for peer address discovery: https://www.ietf.org/archive/id/draft-ietf-quic-address-disc...

Wireguard doesn't, which is why tailscale took off so much, since it offers basically that at its core (with a bunch of auxiliary features on top).

Show me some wireguard discovery/relay servers if I'm wrong.

Also, QUIC is more language-agnostic. The canonical user-space implementation of wireguard is in Go, which can't really do C FFI bindings, and the abstractions are about dealing with "wireguard devices", not "a single dump pipe", so wireguards userspace library also makes it surprisingly difficult to implement this simple thing without also bringing a ton of baggage (like tun devices, gateways, ip address management, etc) along for the ride.

If you already have a robust wireguard setup, then of course you don't need this and can just use socat or whatever.

bastawhiz•3h ago
Wireguard is a tunneling protocol. Netcat lets you write things over a socket. But netcat doesn't implement mechanisms for guaranteeing that all your packets arrive over UDP mode, so you're forced to tunnel TCP over UDP for reliability.

QUIC is all UDP, handling the encryption, resending lost packets, and reordering packets if they arrive out of order. The whole point of QUIC is to make it so you can get files transferred quickly.

WireGuard doesn't know the data you're sending, and netcat+TCP is stuck with the limitations of every packet needing to be sent and acknowledged sequentially.

kevindamm•3h ago
Wireguard is opaque about the independent streams in its connection. So, while they both can encapsulate multiple concurrent streams in one connection, QUIC can do things like mitigate Head-of-Line Blocking and manage encryption at the transport layer. It also uses a connection ID on these substreams which helps make transitioning across network changes seamless.
sethev•2h ago
They both run over UDP and always encrypt data. Beyond that superficial similarity they are completely different.

QUIC is a transport protocol that provides a stream abstraction (like TCP), with some improvements over TCP (like built-in support for multiplexing streams on the same connection, without head-of-line blocking issues).

Wireguard provides a network interface abstraction that acts as NIC. You can run TCP on top of a wireguard NIC (or QUIC for that matter).

bob1029•4h ago
I've always found this path to be more compelling:

https://github.com/samyk/pwnat

It has more edges and doesn't handle all cases, but it also avoids the need for any kind of intermediary.

rsyring•3h ago
Older solution that seems to have issues with some modern routers:

https://github.com/samyk/pwnat/issues/18

kragen•1h ago
But most of all, Samy is my hero.
csteubs•3h ago
Just a head's up, I'm getting a 404 on the link to the relay docs (https://www.iroh.computer/docs/layers/connections) when attempting to click through.
mcstafford•3h ago
https://www.iroh.computer/docs works
ramfox•2h ago
appreciate this, the links on dumbpipe.dev are updated now!
b_fiive•2h ago
Thanks for the heads up! We've fixed: https://github.com/n0-computer/dumbpipe.dev/pull/11
dangoodmanUT•3h ago
iroh is awesome, and this is such a good demo of how stupid simple it is to use
ilovefood•3h ago
iroh is fantastic tech.

I attended Rüdiger's (N0) workshop 2 weeks ago at the web3 summit in Berlin and was left super inspired. The code for building something like this is available here https://github.com/rklaehn/iroh-workshop-web3summit2025 and I highly recommend checking out the slides too :)

scirob•3h ago
Oh they use Iroh notice!
amelius•2h ago
"Dumb pipe" sounds like they forgot about security.
klysm•2h ago
I don't understand this perspective. Dumb primitives that are secure is _exactly_ how you build secure system!
amelius•1h ago
> ... that are secure ...

That's a huge assumption I wouldn't make after reading "dumb".

And from the article:

> Easy, direct connections that punch through NATs & stay connected as network conditions change.

This sounds more like a pipe that is trying to be smart. According to your principle, not something to build a secure system with.

remram•50m ago
You could describe this same project as "a smart pipe that punches through NATs & stays connected (...)" and it wouldn't be any more surprising or inaccurate than the current description. So maybe it is not that descriptive.
rs_rs_rs_rs_rs•2h ago
I've been using this for some years now https://magic-wormhole.readthedocs.io/en/latest/index.html
remram•2h ago
You can do this with ssh (and socat or mkfifo):

  # receiver
  socat UNIX-RECV:/tmp/foobar - | my-command

  # sender
  my-command | ssh host socat - UNIX-SENDTO:/tmp/foobar
You can relay through any other SSH server if your target is behind a firewall or subject to NAT (for example the public service ssh-j.com). This is end-to-end encrypted (SSH inside SSH):

  # receiver
  ssh top-secret@ssh-j.com -N -R ssh:22:localhost:22
  socat UNIX-RECV:/tmp/foobar - | my command

  # sender
  my-command | ssh -J top-secret@ssh-j.com ssh socat - UNIX-SENDTO:/tmp/foobar
(originally posted on the thread for "beam": https://news.ycombinator.com/item?id=42593135)
actinium226•2h ago
Never knew about ssh-j.com. Neat.
kragen•1h ago
This doesn't do most of what dumbpipe claims to do: it doesn't use QUIC, doesn't avoid using relays when possible, doesn't pick a relay for you, and doesn't keep your devices connected as network connections change. It also depends on you doing the ssh key management out-of-band, while dumbpipe appears to put the keys into random ASCII strings.

WireGuard is more similar.

nightfly•1h ago
Wireguard doesn't do most of those either
kragen•53m ago
That's true, just some.
behrlich•2h ago
https://github.com/anderspitman/awesome-tunneling - for anyone interested in the landscape of tunneling tools like this.
amdivia•1h ago
Reminds me of https://docs.pears.com/tools/hyperbeam
100pctremote•1h ago
Very handy. We've developed an industrialized variant of this in RelayKit designed for fleets of fielded devices at scale with Anycast, mTLS, multiplexing of services through a single tunnel, Bring Your Own PKI and some other fleet management features that together become a somewhat smarter pipe: https://farlight.io
jauntywundrkind•1h ago
The surface being http is super nice to have. It's a streams-over-http general utility, quic powered.

I'm struggling to remember what but there's a simple http service called like patchbay or some such that's a store and forward pattern. This idea of very simple very generic http powered services has a high appeal to me.

Looking forward to a future version that can do WebTransport

smusamashah•1h ago
Somewhat relevant, I have a list of (mostly browser based + few no-setup cli) tools [1] to send files from A to B. I keep sharing this list here to fish more tools whenever something like this comes up.

[1]: https://gist.github.com/SMUsamaShah/fd6e275e44009b72f64d0570...

qgin•1h ago
This is really good marketing presentation for a command line tool
punnerud•57m ago
Good article from Tailscale on how direct connections is established, even when both nodes is behind NAT: https://tailscale.com/blog/how-nat-traversal-works
mrighele•51m ago
I remember doing something like this with Skype many years ago (at least 15, I guess).

The old Skype, the one that was a real p2p app and before it got bought by Microsoft, was very good slicing through firewalls and NATs and it offered a plugin api, so it was easy to implement a TCP tunnel with it.

AtlasBarfed•44m ago
Kinda related to this, but is there something that runs a daemon on your local machine, where if a "file request document" is uploaded to mega or Google drive or something similar the (,polling) daemon recognizes the request and pushed the document/file to the file store service?
kwakubiney•42m ago
Is there a way I can use this to run remote commands on another host? Something similar to what ssh does?
makeworld•21m ago
You could pipe to bash?
kwakubiney•7m ago
Ah right, but this does not support bidirectional streaming so I won't be able to get the remote stdout on the client, I guess.

Disabling telemetry in ByteDance's VSCode fork increases data sent to its server

https://github.com/segmentationf4u1t/trae_telemetry_research
261•segfault22•1h ago•53 comments

Dumb Pipe

https://www.dumbpipe.dev/
380•udev4096•5h ago•78 comments

Show HN: Windows 7 GUI for the Web

https://khang-nd.github.io/7.css/
100•khangnd•2h ago•25 comments

Ask HN: What are you working on? (July 2025)

34•david927•2h ago•75 comments

Return of wolves to Yellowstone has led to a surge in aspen trees

https://www.livescience.com/animals/land-mammals/return-of-wolves-to-yellowstone-has-led-to-a-surge-in-aspen-trees-unseen-for-80-years
284•geox•4d ago•155 comments

Tom Lehrer, Musical Satirist with a Dark Streak, Dies at 97

https://www.nytimes.com/2025/07/27/arts/music/tom-lehrer-dead.html
186•detaro•2h ago•42 comments

Linux on Snapdragon X Elite: Linaro and Tuxedo Pave the Way for ARM64 Laptops

https://www.linaro.org/blog/linux-on-snapdragon-x-elite/
240•MarcusE1W•12h ago•159 comments

Allianz Life says 'majority' of customers' personal data stolen in cyberattack

https://techcrunch.com/2025/07/26/allianz-life-says-majority-of-customers-personal-data-stolen-in-cyberattack/
74•thm•1h ago•37 comments

The many JavaScript runtimes of the last decade

https://buttondown.com/whatever_jamie/archive/the-many-many-many-javascript-runtimes-of-the-last-decade/
79•LinguaBrowse•5h ago•26 comments

Katharine Graham: The Washington Post

https://fs.blog/knowledge-project-podcast/outliers-katharine-graham/
42•feross•3d ago•14 comments

Chemical process produces critical battery metals with no waste

https://spectrum.ieee.org/nmc-battery-aspiring-materials
202•stubish•15h ago•22 comments

4k NASA employees opt to leave agency through deferred resignation program

https://www.kcrw.com/news/shows/npr/npr-story/nx-s1-5481304
292•ProAm•14h ago•362 comments

Hierarchical Reasoning Model

https://arxiv.org/abs/2506.21734
244•hansmayer•12h ago•77 comments

High-performance RISC-V processors: UltraRISC UR-DP1000, Zhihe A210, SpacemIT K3

https://www.cnx-software.com/2025/07/22/three-high-performance-risc-v-processors-to-watch-in-h2-2025-ultrarisc-ur-dp1000-zizhe-a210-and-spacemit-k3/
80•fork-bomber•4d ago•13 comments

The future is not self-hosted, but self-sovereign

https://www.robertmao.com/blog/en/the-future-is-not-self-hosted-but-self-sovereign
158•robmao•15h ago•145 comments

Itch.io is the latest marketplace to crack down on adult games

https://techcrunch.com/2025/07/27/itch-io-is-the-latest-marketplace-to-crack-down-on-adult-games/
11•Sourabhsss1•1h ago•2 comments

Fast and cheap bulk storage: using LVM to cache HDDs on SSDs

https://quantum5.ca/2025/05/11/fast-cheap-bulk-storage-using-lvm-to-cache-hdds-on-ssds/
182•todsacerdoti•16h ago•55 comments

Smallest particulate matter air quality sensor for ultra-compact IoT devices

https://www.bosch-sensortec.com/news/worlds-smallest-particulate-matter-sensor-bmv080.html
143•Liftyee•16h ago•48 comments

Instrumenting Next.js with runtime secret injection

https://phase.dev/blog/instrumenting-nextjs-with-runtime-secret-injection/
6•nimishk•2h ago•7 comments

When photography was born, fascination, obsession, and danger followed

https://www.washingtonpost.com/books/2025/07/12/flashes-brilliance-history-early-photography-anika-burgess-review/
44•prismatic•3d ago•27 comments

Janet: Lightweight, Expressive, Modern Lisp

https://janet-lang.org
152•veqq•18h ago•79 comments

When we get Komooted

https://bikepacking.com/plog/when-we-get-komooted/
393•atakan_gurkan•12h ago•212 comments

Into the co-ferment kingdom: A trip to Finca Monteblanco

https://www.robertasami.com/coffee/into-the-coferment-kingdom
5•archagon•3d ago•0 comments

Constrained languages are easier to optimize

https://jyn.dev/constrained-languages-are-easier-to-optimize/
53•PaulHoule•10h ago•45 comments

Beetroot juice lowers blood pressure by changing oral microbiome: study

https://news.exeter.ac.uk/faculty-of-health-and-life-sciences/beetroot-juice-lowers-blood-pressure-in-older-people-by-changing-oral-microbiome/
172•lightlyused•6h ago•107 comments

Coronary artery calcium testing can reveal plaque in arteries, but is underused

https://www.nytimes.com/2025/07/26/health/coronary-artery-calcium-heart.html
174•brandonb•21h ago•161 comments

BlueOS Kernel – Written in Rust, compatible with POSIX

https://github.com/vivoblueos/kernel
75•dacapoday•3d ago•8 comments

Purple Earth hypothesis

https://en.wikipedia.org/wiki/Purple_Earth_hypothesis
276•colinprince•3d ago•76 comments

16colo.rs: ANSI/ASCII art archive

https://16colo.rs/
98•debo_•3d ago•23 comments

A low power 1U Raspberry Pi cluster server for inexpensive colocation (2021)

https://github.com/pawl/raspberry-pi-1u-server
108•LorenDB•4d ago•42 comments