Show HN: Pion/handoff – Move WebRTC out of browser and into Go
Sean-Der
93 points
17 comments
April 07, 2026
Related Discussions
Found 5 related stories in 681.3ms across 14,015 title embeddings via pgvector HNSW
- Show HN: I ported Xonotic (arena FPS) to WebAssembly with full P2P multiplayer astlouis44 · 12 pts · June 06, 2026 · 58% similar
- Show HN: Open-source browser for AI agents theredsix · 118 pts · March 11, 2026 · 58% similar
- I built a browser-based P2P file transfer tool using WebRTC SamOkampo · 11 pts · July 19, 2026 · 56% similar
- Show HN: A stateful UI runtime for reactive web apps in Go derstruct · 12 pts · April 14, 2026 · 56% similar
- Show HN: Deterministic browser control for AI agents (~90% on Mind2Web) theredsix · 12 pts · March 06, 2026 · 55% similar
Discussion Highlights (4 comments)
Sean-Der
I wrote this to make Reverse Engineering WebRTC services easier. Will also let you save/send arbitrary media from WebRTC sessions. The idea is you do all your auth/interaction in the browser, but then do all WebRTC in Go. So you have lots more control. More to do with it, but it is far enough along to share at least. In the README is an screenshot of sending my webcam, but replacing outgoing video with a ffmpeg testsrc. Handoff sits between so it can replace with any arbitrary video.
Hakkin
Oh, this is interesting. I have been messing around with a WebExtension for dumping encoded WebRTC media streams by intercepting streams on RTCPeerConnection.addTrack, but it doesn't work reliably since the current WebRTC encoded stream API(s) only supports a single reader, so if the actual website is also using the API, it either breaks the site or it's impossible to intercept the media. This seems like a nice workaround, I had briefly considered some kind of proxy but I wrote it off since WebRTC traffic is encrypted, I never considered proxying the peer connection API calls themselves. Pretty clever.
hparadiz
Would be interesting for a Wayland DM to catch this and draw to a picture in picture overlay
esafak
Is this a good way to improve performance (frame rate, latency, CPU load) ?