9 ms·
I was going through some of my old projects and saw one that used this webrtc library. I remember at least at the time (3-4 years ago) if you wanted a webrtc co
by seansh 3y ago
I was going through some of my old projects and saw one that used this webrtc library. I remember at least at the time (3-4 years ago) if you wanted a webrtc communication channel outside of the browser there were really only two options. One was from Google [1], which is used in both chrome and firefox, and the other one was this c library.
I recall it took me a week to figure out how to properly compile Google's implementation (which uses the bazel build system) as a static or dynamic library to link to. Even then, I think I couldn't get it below something like 50MB. I don't remember the exact binary size but it was so large that I either had to give up using it or give up calling my app "lightweight".
Later I learned that there was also another great implementation written in Go [2] but obviously not feasible if the rest of your project is not in Go.
[1] https://webrtc.googlesource.com/src https://webrtc.googlesource.com/src
[2] https://github.com/pion/webrtc https://github.com/pion/webrtc
- rustwebrtc 3y agoThere is also a Rust implementation based on Pion that is active: webrtc-rs/webrtc
- mypalmike 3y agos/Rust/Go/
- jupp0r 3y agoA lot of those 50mb will probably disappear if you statically link your binary against the library.
- Sean-Der 3y agoThe optimization for size is pretty hard (for me at least). Lots of cool stuff you can do. But if you are on a time crunch/trying to go to production it doesn’t happen. These days I just default to ‘thin’ implementations like mbedtls when I know it’s gonna come up :)
- singpolyma3 3y agoIt's not clear what platforms this can run on or how it is related to kinesis
- sesm 3y agoAFAIK 50mb is the entire WebRTC that has a lot of browser-related stuff. If you only needed P2P connection establishment, you could take old version of libjingle from the point in time when it was a separate library.