All Projects → pixelbender → Go Stun

pixelbender / Go Stun

Licence: mit
Go implementation of STUN, TURN and ICE Protocols

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Go Stun

hoice
An ICE-based predicate synthesizer for Horn clauses.
Stars: ✭ 41 (-80%)
Mutual labels:  ice
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
Ice Demos
Sample programs for Ice
Stars: ✭ 285 (+39.02%)
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
Mongooseice
STUN/TURN server written in Elixir
Stars: ✭ 103 (-49.76%)
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
Webrtc
A pure Rust implementation of WebRTC API
Stars: ✭ 922 (+349.76%)
Mutual labels:  ice
Vue Materials
🎯High quality Vue materials maintained by the community.
Stars: ✭ 128 (-37.56%)
Mutual labels:  ice
Ice4j
A Java implementation of the ICE protocol
Stars: ✭ 332 (+61.95%)
Mutual labels:  ice
Re
Generic library for real-time communications with async IO support
Stars: ✭ 444 (+116.59%)
Mutual labels:  ice
Ice
A Go implementation of ICE
Stars: ✭ 114 (-44.39%)
Mutual labels:  ice
Ice
AWS Usage Tool
Stars: ✭ 2,784 (+1258.05%)
Mutual labels:  ice
Pastcode
Stars: ✭ 135 (-34.15%)
Mutual labels:  ice
kvazzup
Open software for HEVC video calls
Stars: ✭ 30 (-85.37%)
Mutual labels:  ice
Ice
WIP RFC 8445 ICE implementation in go
Stars: ✭ 95 (-53.66%)
Mutual labels:  ice
Stun
STUN and TURN library for Erlang / Elixir
Stars: ✭ 192 (-6.34%)
Mutual labels:  ice
Stun
A Go implementation of STUN
Stars: ✭ 141 (-31.22%)
Mutual labels:  ice
Webrtc Data Channel Demo
WebRTC Data Channel demo
Stars: ✭ 116 (-43.41%)
Mutual labels:  ice

go-stun

Go implementation of STUN, TURN and ICE Protocols

Build Status Coverage Status Go Report Card GoDoc

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].