
Modern and Cross Platform Stack for WebRTC - todsac
https://github.com/pion
======
gfodor
Whenever these threads pop up I always ask: is there an erlang/elixir
implementation anyone knows about? I check every couple of months and come up
empty (there is one closed source one.) Being able to speak WebRTC natively to
a Elixir/Phoenix cluster would be a pretty killer app, but the hurdle to get
there is quite high.

~~~
toast0
In terms of communications between client and server, I'm not sure what you
get with WebRTC that you don't get with websockets? What's your intended
application?

~~~
lux
For game-related use cases, we need to be able to specify which data is
reliable and which isn't. Websockets use TCP which doesn't give you that
control.

~~~
gfodor
Yep, also I’d like to be able to transfer voice/video through the erlang
cluster

------
vasilakisfil
Interesting! Personally I am looking forward to a Rust implementation.

~~~
littlestymaar
I also would like to have a WebRTC lib usable from Rust, but it doesn't
necessarily need to be written in Rust itself. This one being in Go means it's
probably hard/inefficient to write binding for it, but maybe this one (in C)
could do the job :
[https://github.com/rawrtc/rawrtc](https://github.com/rawrtc/rawrtc)

------
valera_rozuvan
Some signaling strategies for WebRTC:

\- WebSockets

\- XHR and other Comet options

\- SIP over WebSockets

\- XMPP/Jingle

\- WebRTC's Data Channel

Obviously, one would want the data channel (last option). There's some work
done in this area. However, it's still not full featured.

~~~
valera_rozuvan
For anyone curious, there is a great article [1].

WebRTC enables peer to peer communication.

BUT...

WebRTC still needs servers:

For clients to exchange metadata to coordinate communication: this is called
signaling. To cope with network address translators (NATs) and firewalls.

\-------------

[1]
[https://www.html5rocks.com/en/tutorials/webrtc/infrastructur...](https://www.html5rocks.com/en/tutorials/webrtc/infrastructure)

~~~
k__
You need a signaling channel to your peer. This doesn't have to be a server,
but it makes things simpler.

~~~
ChristianBundy
My preference is IPoAC.

~~~
RcrdBrt
I think that adds up some latency

------
dbrgn
How's the native Android / iOS integration story for Pion? Are there any Java
/ Kotlin / Swift bindings around?

~~~
dep_b
I have the same question. If it doesn't work on iOS it's not a cross platform
stack. iOS is the third most popular operating system in the world after
Android and Windows.

------
mikerg87
Looks cool. Does it have the capability to do SFU or is there planned work to
include that capability ?

~~~
zazerr
They have this SFU example but I didn't look at it closely yet:
[https://github.com/pion/example-webrtc-
applications/tree/mas...](https://github.com/pion/example-webrtc-
applications/tree/master/sfu-ws)

------
dintech
I'd like to stream high-quality, low-latency audio from a C++ app alongside
webcam/mic from chrome/firefox. The receiver should get video and a mixed
blended audio. Maybe even screenshare and mouse/keyboard control. Is this
possible?

~~~
expialidocious
Yes. Maybe look at Gstreamer.

------
fouc
Has anyone noticed "Modern and Cross Platform" usually means Golang?

~~~
rapsey
This industry is insanely fad driven. Every aspect of it. Terminology, tech
stacks and methodologies are all one fad after another.

~~~
paulgb
Go is over a decade old, not counting a couple of years of development in
private. I'm not the biggest fan of the language but it's hard to think of it
as a fad.

~~~
jonex
Fad or not, in terms of programming languages, ten years isn't such a long
time. It typically takes a few years just to reach the eco system maturity and
community size needed to become a popular language. Rust is also ca. ten years
old and I'd argue that it still haven't reached its full potential.

------
xg15
> _Ship to Mobile, Desktop, Servers and WASM all with one code base._

Dumb question: what would a WASM implementation be useful for? Browsers don't
expose "raw" TCP or UDP connections, so even if you have a fully working
WebRTC implementation in WASM, there would be no way to connect to anything
when ran inside a browser.

Or is this for WASM use outside the browser?

~~~
microcolonel
People are building server-side WASM runtimes, which I suspect is your answer.
To me the other answer is they could provide the same API in the browser
through a shim.

~~~
fulafel
It's the latter. See
[https://github.com/pion/webrtc/pull/479](https://github.com/pion/webrtc/pull/479)

------
weavie
What are the best resources to learning WebRTC at the minute?

It seems to be a pretty fast moving area, a lot of what I find out there is
outdated.

~~~
expialidocious
MDN docs are very good.

[https://developer.mozilla.org/en-
US/docs/Web/API/WebRTC_API](https://developer.mozilla.org/en-
US/docs/Web/API/WebRTC_API)

For landscape, I also like the webrtchacks.com blog, and a very smart
consultant runs a blog at bloggeek.me.

------
expialidocious
I wonder how go garbage collection and real time data streams get along
together.

------
mothsonasloth
Are there any web rtc implementations with Java?

