WebRTC DataChannel Everywhere
- Dominant language
- No language data
- Stars
- 328
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
# WebRTC DataChannel Everywhere
(I realized this many months ago, documenting it here for discussion)
WebRTC is becoming the de-facto way to connect two peers in the web (thanks to @petar for pointing this out to me). While protocols like LEDBAT (uTP) work for most applications, those who would seek to interact with peers _running in browsers_ must use webrtc for the foreseeable future.
We can get everyone (servers + browsers) talking over WebRTC. But to do that we need servers to speak WebRTC. AFAIK, only browsers have implementations. And this is because `libwebrtc` (https://code.google.com/p/webrtc/) is a behemoth. It has libjingle + DataChannel + lots of A/V magic + much more in it.
## We need
1. a clean `libwebrtc` + language bindings.
2. a `libwebdc` - only the datachannel part.
(2.) is because many application use cases don't care at all about the A/V stuff, and only want to exchange data with peers. We only need WebRTC DataChannels (libjingle + datachannel implementation, SCTP, etc).
## I propose
- we rip out datachannel and make a standalone c lib, `libwebdc`
- we build standard language bindings to it (node, Go, python, etc)
- we experiment with (+ perhaps commit to) WebRTC DataChannel implementations in various languages.
Eventually, native language implementations may emerge, but frankly, rewriting libjingle, sctp, and whatever else on top of rewriting the DataChannel protocol, seems _much_ harder than ripping out the code we need from `libwebrtc` into `libwebdc`. (Would love to be proved wrong).
I know many people are interested in this, so let's do it.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.