Evaluate pion WebRTC
We've made a pure Go WebRTC port over at pions/webrtc. This may provide a viable alternative to libwebrtc.
- We've not done much work on security yet. However, we definitely intend to work on this since hardening the security will be a requirement for many other use-cases.
- Not entirely feature complete but this seems less important for your use-case.
- We don't support TURN yet. We currently plan to build this for our next release.
- It is fully go-gettable, fixing the horrible built process. In addition, it should run everywhere Go runs.
- We've tested our data channel implementation against multiple targets, including Chrome, Firefox and NodeJS and aim to automate these in the future.
- It will give you more freedom to make changes to the WebRTC stack and even allow experimentation, E.g.: to reduce fingerprinting.
- It may solve/invalidate some of your other problems, including #19026 (moved), #19315 (moved), #19569 (moved), #22718 (moved) and #25483 (moved).
- We're working on exposing an idiomatic API based on the io.ReadWriteCloser.
- We have an active community and development team. We're more than happy to fix any problems that may arise. We're also open to prioritizing any features you conciser blocking. Lastly, we have great PR response times.
I'm also interested in collaborating on NAT testing as mentioned in #25595 (moved).