pixelbender / Go Stun
Licence: mit
Go implementation of STUN, TURN and ICE Protocols
Stars: ✭ 205
Programming Languages
go
31211 projects - #10 most used programming language
Labels
Projects that are alternatives of or similar to Go Stun
Icememe
Roblox Exploit Source Code Called IceMeme with some cmds, lua c and limited lua execution with simple ui in c#
Stars: ✭ 42 (-79.51%)
Mutual labels: ice
Ice
Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more.
Stars: ✭ 1,772 (+764.39%)
Mutual labels: ice
Sipsorcery
A WebRTC, SIP and VoIP library for C# and .NET Core. Designed for real-time communications apps.
Stars: ✭ 449 (+119.02%)
Mutual labels: ice
werift-webrtc
WebRTC Implementation for TypeScript (Node.js), includes ICE/DTLS/SCTP/RTP/SRTP
Stars: ✭ 228 (+11.22%)
Mutual labels: ice
React Materials
Migrate to: https://github.com/alibaba-fusion/materials
Stars: ✭ 189 (-7.8%)
Mutual labels: ice
Vue Materials
🎯High quality Vue materials maintained by the community.
Stars: ✭ 128 (-37.56%)
Mutual labels: ice
Re
Generic library for real-time communications with async IO support
Stars: ✭ 444 (+116.59%)
Mutual labels: ice
go-stun
Go implementation of STUN, TURN and ICE Protocols
Features
- [x] STUN Encoder/Decoder
- [x] STUN Client/Server
- [x] STUN Authorization
- [x] STUN Transactions
- [x] STUN Multiplexing
- [ ] STUN Redirection
- [ ] NAT Behavior Discovery
- [x] ICE Messages
- [ ] ICE Agent
- [ ] ICE Gathering
- [ ] ICE Lite
- [x] TURN Messages
- [x] TURN Client
- [ ] TURN Server
- [ ] ...
Installation
go get github.com/pixelbender/go-stun/...
STUN: Server reflexive transport address discovery
package main
import (
"github.com/pixelbender/go-stun/stun"
"fmt"
)
func main() {
conn, addr, err := stun.Discover("stun:stun.l.google.com:19302")
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
fmt.Printf("Local address: %v, Server reflexive address: %v", conn.LocalAddr(), addr)
}
TURN: Relayed transport address allocation
package main
import (
"github.com/pixelbender/go-stun/turn"
"fmt"
)
func main() {
conn, err := turn.Allocate("turn:username:[email protected]")
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
fmt.Printf("Local address: %v, Relayed transport address: %v", conn.LocalAddr(), conn.RelayedAddr())
}
Specifications
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].