Open source webrtc stack implementation in go.
The gortc project aims to implement WebRTC protocol in golang,
providing interoperability between golang clients (or servers),
browsers (or other agents, e.g. node-js implementation).
Current focus is reliable UDP connectivity between go clients behind NAT.
- Create tools and libraries for NAT traversal and ICE
- Make them safe, reliable, fast, stable and simple to use and extend
- Make them useful (extensible and flexible) for enterprise while staying open source
- Don't be hype and PR driven, popularity and stars count are not appropriate metrics
- High and rigorous standards for core packages:
- Minimum (none is ideal) 3-rd party deps
- Greater than 90% test coverage
- Benchmarks to track performance
- Zero-allocation in hot paths
- Tests for zero allocation
- Fuzz-testing
- Integration (functional, e2e) tests
- Static checks (linters)
- Test with
-race
flag
- Run ci tests with
go tip
daily
- API backward compatibility check
- Less is more, avoid feature bloat
- Mostly bottom-up development with feedback loop
- Decoupling and abstraction layer isolation
- Conscious architecture design with clear goals
- Follow effective go and CodeReviewComments
- Follow semver with
v
prefix for tags, like v1.2.0
- Use RFC wording whenever possible but not at the expense of idiomaticity
- Manage dependencies via go modules
Thanks JetBrains for support!
The gortc project uses TeamCity as CI/CD tool
that greatly simplifies running a lot of end-to-end and cross-tests for each sub-project.
The provided OpenSource license allows project not doing compromise on reliability.
Thanks so much for contribution to the gortc project:
Project is in active development, but some of the build blocks are already implemented.
Check
github organization for available code.
I'm Aleksandr Razumov (ernado), Senior Go Developer with commercial experience
starting from 2014 (and non-go from 2011) and currently working at unrelated highload project.
Commits
Total: 2359 commits, 37398 lines
Last 30 days: 3
Last 7 days: 0
Last 24 hours: 0
Updated: Wednesday, 20-Jan-21 19:50:10 UTC
Contributions and bug reports are welcome. Source code is in gortc/web repo.