gortc / Turn
Licence: mit
RFC 5766 TURN implementation in go
Stars: ✭ 109
Labels
Projects that are alternatives of or similar to Turn
Go Stun
A go implementation of the STUN client (RFC 3489 and RFC 5389)
Stars: ✭ 420 (+285.32%)
Mutual labels: webrtc, nat-traversal
Ice4j
A Java implementation of the ICE protocol
Stars: ✭ 332 (+204.59%)
Mutual labels: webrtc, nat-traversal
Stun
Fast RFC 5389 STUN implementation in go
Stars: ✭ 451 (+313.76%)
Mutual labels: webrtc, nat-traversal
Gortcd
Fast TURN and STUN server: cross-platform, hot reload, flexible config
Stars: ✭ 358 (+228.44%)
Mutual labels: webrtc, nat-traversal
Quickblox Javascript Sdk
JavaScript SDK of QuickBlox cloud backend platform
Stars: ✭ 98 (-10.09%)
Mutual labels: webrtc
No Server Webrtc Android
A demo of using WebRTC with no signaling server. But in Kotlin (Java) for Android.
Stars: ✭ 105 (-3.67%)
Mutual labels: webrtc
Sidedoor
SSH connection daemon for Debian/Raspbian/Ubuntu/etc
Stars: ✭ 97 (-11.01%)
Mutual labels: nat-traversal
Mediasoup Client Android
mediasoup android client side library https://mediasoup.org
Stars: ✭ 96 (-11.93%)
Mutual labels: webrtc
Janus Cloud
a cluster solution for Janus WebRTC server, by API proxy approach
Stars: ✭ 108 (-0.92%)
Mutual labels: webrtc
Licode Erizoclientios
IOS Erizo client library for Licode WebRTC Framework
Stars: ✭ 107 (-1.83%)
Mutual labels: webrtc
Callroulette
A WebRTC demo using Python (asyncio + aiohttp) as the backend
Stars: ✭ 104 (-4.59%)
Mutual labels: webrtc
Kamailio
Kamailio - The Open Source SIP Server for large VoIP and real-time communication platforms -
Stars: ✭ 1,358 (+1145.87%)
Mutual labels: webrtc
Webrtc Experiment
WebRTC, WebRTC and WebRTC. Everything here is all about WebRTC!!
Stars: ✭ 10,335 (+9381.65%)
Mutual labels: webrtc
Opentok Network Test
Sample app to test network connectivity and statistics (bps, packet-lost)
Stars: ✭ 104 (-4.59%)
Mutual labels: webrtc
Translator
Translator.js is a JavaScript library built top on Google Speech-Recognition & Translation API to transcript and translate voice and text. It supports many locales and brings globalization in WebRTC! https://www.webrtc-experiment.com/Translator/
Stars: ✭ 103 (-5.5%)
Mutual labels: webrtc
TURN
Package turn implements TURN [RFC5766] Traversal Using Relays around NAT. Based on gortc/stun package. See gortcd for TURN server and turnc for TURN client.
Supported RFCs
- [x] RFC 5766 — Traversal Using Relays around NAT
- [x] UDP transport for client
- [ ] TCP or TLS transport for client
- [x] RFC 6156 — TURN Extension for IPv6
- [x] RFC 7065 — TURN URI
- [ ] RFC 5928 — TURN Resolution Mechanism #13
- [ ] RFC 6062 — TURN Extension for TCP Allocations #14
Testing
Client behavior is tested and verified in many ways:
- End-To-End with long-term credentials
- Bunch of code static checkers (linters)
- Unit-tests (linux {amd64, arm64}, windows}
- Explicit API backward compatibility check, see
api
directory (relaxed until v1)
See TeamCity project and e2e
directory
for more information. Also the Wireshark .pcap
files are available for some of e2e tests in
artifacts for build.
Benchmarks
goos: linux
goarch: amd64
pkg: github.com/gortc/turn
PASS
benchmark iter time/iter throughput bytes alloc allocs
--------- ---- --------- ---------- ----------- ------
BenchmarkIsChannelData-12 2000000000 1.64 ns/op 6694.29 MB/s 0 B/op 0 allocs/op
BenchmarkChannelData_Encode-12 200000000 9.11 ns/op 1317.35 MB/s 0 B/op 0 allocs/op
BenchmarkChannelData_Decode-12 500000000 3.92 ns/op 3061.45 MB/s 0 B/op 0 allocs/op
BenchmarkChannelNumber/AddTo-12 100000000 12.60 ns/op 0 B/op 0 allocs/op
BenchmarkChannelNumber/GetFrom-12 200000000 7.23 ns/op 0 B/op 0 allocs/op
BenchmarkData/AddTo-12 100000000 18.80 ns/op 0 B/op 0 allocs/op
BenchmarkData/AddToRaw-12 100000000 16.80 ns/op 0 B/op 0 allocs/op
BenchmarkLifetime/AddTo-12 100000000 13.70 ns/op 0 B/op 0 allocs/op
BenchmarkLifetime/GetFrom-12 200000000 7.10 ns/op 0 B/op 0 allocs/op
ok github.com/gortc/turn 19.110s
Auxiliary statuses
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].