All Projects → gortc → Turn

gortc / Turn

Licence: mit
RFC 5766 TURN implementation in go

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

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
Ice
WIP RFC 8445 ICE implementation in go
Stars: ✭ 95 (-12.84%)
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
Webtorrent.io
The code that runs the WebTorrent website
Stars: ✭ 106 (-2.75%)
Mutual labels:  webrtc
Learning Webrtc
Codes and notes while learning webrtc
Stars: ✭ 98 (-10.09%)
Mutual labels:  webrtc
Webrtc Experiment
WebRTC, WebRTC and WebRTC. Everything here is all about WebRTC!!
Stars: ✭ 10,335 (+9381.65%)
Mutual labels:  webrtc
U2web
stream video with p2p
Stars: ✭ 97 (-11.01%)
Mutual labels:  webrtc
Opentok Network Test
Sample app to test network connectivity and statistics (bps, packet-lost)
Stars: ✭ 104 (-4.59%)
Mutual labels:  webrtc
Instacam
Instant canvas video
Stars: ✭ 106 (-2.75%)
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

Master status GoDev codecov

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
    • coturn: The coturn server (linux)
    • gortcd: The gortcd server (windows)
  • 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

  • Master status — TeamCity aggregated status
  • Build Status — Travis (fast checks)
  • Build status — Appveyor (fast checks, Windows)
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].