HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
webrtc-rs
webrtc
Rust2020–2026
webrtc-rs / webrtc

webrtc

Async-friendly WebRTC implementation in Rust

7Distinct people
14Mentions
0Explicit recommenders
5.2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Async-friendly WebRTC implementation in Rust

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

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

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

Every Windows 11 app should kill Electron, and Discord just showed why direct repository linkDebated

Users debate whether Discord's migration from Electron to a native Rust stack justifies the loss of cross-platform development efficiency and accessibility features for perceived gains in memory usage. Critics argue that web frameworks waste system resources, while defenders highlight the value of consistent visuals and reduced developer man-hours.

511 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year14 dated mentions

Observed mentions: 2020-12-14 05:17:33 UTC to 2026-06-10 19:46:54 UTC.

012342020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 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
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC404
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC110
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

What Hacker News says

14 sources
Author here. This started as a blank page on one device and ended two weeks later at the intersection of two bugs: webrtc-rs hardcodes INITIAL_MTU=1228 [never updated, no path probing, retransmits at the same size forever], and Tailscale's packet filter classifies any IPv6 packet with a Fragment header as unknown protocol, so the default deny fires. On every platform, counted under reason="acl". Neither is unreasonable alone. Together: silent wedge, every health check green, because everything that tests the path is small and only the payload fragments. Two-command repro on any tailnet: ping -s 100 works, ping -s 1400 over the Tailscale IPv6 address is 100% loss. Full WebRTC repro and captures: https://github.com/phact/mtu-webrtc-bug. We've reported upstream to both projects https://github.com/tailscale/tailscale/issues/20083 and https:/
Read the rest
/github.com/webrtc-rs/webrtc/issues/806. Happy to answer questions. Especially interested if anyone knows the history behind the IPv6 fragment decision in Tailscale's filter.
In The iPad was on Tailscale: a WebRTC debugging story
I am so happy that WebRTC has so many implementations. Every developer thinks differently, it's good to have a implementation that matches your mindset. * https://github.com/shinyoshiaki/werift-webrtc (Typescript) * https://github.com/pion/webrtc (Golang) * https://github.com/webrtc-rs/webrtc (Rust) * https://github.com/algesten/str0m (Rust) * hhttps://github.com/sepfy/libpeer (C/Embedded) * https://webrtc.googlesource.com/src/ (C++) * https://github.com/sipsorcery-org/sipsorcery (C#) * https://github.com/paullouisageneau/libdatachannel (C++) * https://github.com/elixir-webrtc (Elixir) * https://github.com/aiortc/aiortc (Python) * GStreamer’s webrtcbin (C) See https://github.com/sipsorcery/webrtc-echoes for examples of some running against each other.
In WebRTC for the Curious
What makes something a 'blessed way'? Are you looking for community support, large corporate users etc..? Not being snarky, curious about how people see the space. Lots of implementations exist and I have used most of them for different projects, not all these projects went to production though. * https://github.com/elixir-webrtc (Elixir) * https://github.com/pion/webrtc (Golang) * https://github.com/webrtc-rs/webrtc (Rust) * https://github.com/algesten/str0m (Rust) * https://github.com/sepfy/libpeer (C/Embedded) * https://github.com/awslabs/amazon-kinesis-video-streams-webr... (C/Embedded) * https://github.com/paullouisageneau/libdatachannel (C++) * https://webrtc.googlesource.com/src/ (C++) * https://github.com/shinyoshiaki/werift-webrtc (Typescript) * https://github.com/sipsorcery-org/sipsorcery (C#) * https://github.com/aiortc/aiortc
Read the rest
(Python) * GStreamer’s webrtcbin (C)
In VoRS: Vo(IP) Simple Alternative to Mumble
I am really excited about https://github.com/sepfy/libpeer. It has examples ready for ESP32 etc.... When working on KVS I wasn't familiar with the embedded space at all. I saw 'heavyweight' embedded where you were running on Linux. Then you had RTOS/No OS at all. I wasn't prepared for these devices at all. If we can make WebRTC work in the embedded space I think it will really accelerate what developers are able to build! Remotely driven cars, security cameras, robots in hospitals that bring iPads to infectious patients etc... Creative people are building amazing things. The WebRTC/video space needs to work harder and support them :) ----- I love how diverse the WebRTC space is now. Outside of this implementation you have plenty of other options! * https://github.com/shinyoshiaki/werift-webrtc (Typescript) * https://github.com/pion/webrtc
Read the rest
In Pure C WebRTC
What libraries have you used? There are a lot these days, maybe you haven't tried one yet that matches the way you think/code :) * https://github.com/aiortc/aiortc (Python) * GStreamer’s webrtcbin (C) * https://github.com/shinyoshiaki/werift-webrtc (Typescript) * https://github.com/pion/webrtc (Golang) * https://github.com/webrtc-rs/webrtc (Rust) * https://github.com/algesten/str0m (Rust) * https://github.com/awslabs/amazon-kinesis-video-streams-webr... (C/Embedded) * hhttps://github.com/sepfy/libpeer (C/Embedded) * https://webrtc.googlesource.com/src/ (C++) * https://github.com/sipsorcery-org/sipsorcery (C#) * https://github.com/paullouisageneau/libdatachannel (C++) * https://github.com/elixir-webrtc (Elixir) See https://github.com/sipsorcery/webrtc-echoes for examples of some running against each other.
In WebRTC for the Curious (2020)
Lots of other WebRTC implementation exist (in many languages). Happy to help if you have any questions * https://github.com/aiortc/aiortc (Python) * GStreamer’s webrtcbin (C) * https://github.com/shinyoshiaki/werift-webrtc (Typescript) * https://github.com/pion/webrtc (Golang) * https://github.com/webrtc-rs/webrtc (Rust) * https://github.com/awslabs/amazon-kinesis-video-streams-webr... (C/Embedded) * https://webrtc.googlesource.com/src/ (C++) * https://github.com/rawrtc/rawrtc (C++) * https://github.com/sipsorcery-org/sipsorcery (C#) * https://github.com/paullouisageneau/libdatachannel (C++) See https://github.com/sipsorcery/webrtc-echoes for examples of all of them running against each other.
In WebRTC support being added to FFmpeg
In A simple C implementation to stream H.264 to browser using WebRTC
This is so exciting. WebRTC is our best hope to have video interop between platforms. I love that it works outside web browsers, compeitors like WebTransport assume a 100% browser world. Or you have protocols like RTMP/SRT... that will never make it into the browser. WebRTC might be our best bet to establish P2P connectivity between all languages/platforms. Would love to get rid of the single point of falure in Pub/Sub systems. WebRTC also feels like a great path towards easy cloud-agnostic code. You can use lots of different languages, and not dependent on SDKs/Servers. * https://github.com/aiortc/aiortc (Python) * GStreamer’s webrtcbin (C) * https://github.com/shinyoshiaki/werift-webrtc (Typescript) * https://github.com/pion/webrtc (Golang) * https://github.com/webrtc-rs/webrtc (Rust) * https://github.com/awslabs/amazon-kinesis-video-st
Read the rest
reams-webr... (C/Embedded) * https://webrtc.googlesource.com/src/ (C++) * https://github.com/rawrtc/rawrtc (C++) ---- Then you have a couple that aren't Open Source. But proves it is possible for these platforms also. * Shiguredo (Erlang) * |pipe| (Java) ---- If you are new to WebRTC I have been working on making it more accessible https://webrtcforthecurious.com. I am currently pretty tied up with Pion so haven't been able to make much progress lately.
In WebRTC is now a W3C and IETF standard
I think it was a matter of what libraries were available where. Namely, Lightspeed-webrtc uses the extremely popular & robust Go library Pion[1] for webrtc. It's a little over 500 lines. The Rust Lightspeed-ingest[2] server is also ~500 lines of code, and primarily handshakes the FTL protocol used to communicate with OBS. There is a Pion port to rust[3] that is in progress. I am not sure the state of this work. Pion is used quite extensively by many many projects; I'm not sure if the rust webrtc-rs port has any notable users yet. As I began by saying, I expect the trustability & extensiveness of Pion is what lead to lightspeed-webrtc being written in Go. [1] https://pion.ly/ [2] https://github.com/GRVYDEV/Lightspeed-ingest [3] https://github.com/webrtc-rs/webrtc
In Show HN: Lightspeed – subsecond, open source, self hosted stream from OBS
> WebTorrent has DHTs working in the browser, not sure how much more decentralized you're talking about. Not sure about how things work now, but IIRC WebTorrent web peers could not connect to native BitTorrent peers. Instead they would connect only to WebTorrent Desktop peers and other Web peers. The WebTorrent team of course is doing incredible work, and they've been able to convince some of the native torrent clients to support Web Torrent - so it kinda works in practice. So for a new protocol, the hard part would be to make all the non-browser peers speak WebRTC - which is nowhere as easy/robust as writing a TCP/UDP based peer [1]. [1]: Add - Things have certainly improved on this front. eg: https://github.com/webrtc-rs/webrtc
In Hypercore protocol: a distributed (P2P) append-only log

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.