Skip to content
Sean DuBois edited this page Mar 11, 2019 · 24 revisions

Contributing

Thank you very much for contributing pion-WebRTC! This project only exists because of the work of individuals.

Project Ideas

All the following projects are currently unowned, so feel free to work on anything here! If you do start on something please reach out so we can remove it from the list

Enable disabled linters

Some of our linters are turned off because the effort to fix the issues was too high at the time, turning them on here and fixing them in a PR would be a huge help for code quality.

Build a media server powered by pion-WebRTC

Start a thread on the mailing list and get feedback around this. Building a media server could enable a lot of people to build cool things.

I am not sure what the feature set would be, but it is only worth doing if we can do something different/interesting then existing projects.

Helping Community Projects

There are lots of interesting projects that pion-WebRTC could be used with, these are just some of them. Feel free to add more!

Mobile Support

Document how people can use pion-WebRTC on Android/IOS. Is it possible to capture webcam + encode?

Add an example of pion-WebRTC <-> pion-WebRTC

Add e2e tests of pion-WebRTC <-> pion-WebRTC

Add e2e tests of pion-WebRTC <-> Chromium

Improve Logging

Move logging to github.com/pions/log (or something similar)

Logging in our other subsystems is still done via fmt we need to fix this

Allow users to set callbacks instead of printing

We should hand off all our info to users, and allow them to decide what to do with it. I have heard the following use cases

  • Structured logging -- Users can save logs to JSON or other formats that work for them
  • Errors in detached threads -- Right now messages can be lost, if users can set a callback they can act upon them
  • Logging to stdout doesn't scale -- If a user is dealing with a high volume of logs this can be frustrating with them getting saved to syslog.

Improve ICE

Currently our ICE implementation is very naive, these are the things that need to get better

  • Trickle ICE
  • Support ICE-lite peers
  • Choose the best peer, not just the first that arrives (measure RTT etc..)
  • Actually assert the validity of incoming packets (right now we only check that the packet comes from the right IP)