mirror of
https://github.com/go-i2p/go-webrtc-net.git
synced 2025-06-15 11:42:20 -04:00
main
go-webrtc-net
Go library providing standard Go network interfaces (net.Conn, net.PacketConn, net.Listener) over WebRTC connections.
Installation
go get github.com/go-i2p/go-webrtc-net
Features
- Standard Go network interfaces over WebRTC
- Support for both reliable (TCP-like) and unreliable (UDP-like) modes
- Thread-safe implementation
- Context-aware connection management
- Built on pure Go WebRTC implementation (pion/webrtc)
Usage
// Create a WebRTC connection
conn, err := webrtc.DialConn(underlying, "remote-peer-address")
if err != nil {
log.Fatal(err)
}
defer conn.Close()
// Use it like a regular net.Conn
_, err = conn.Write([]byte("Hello WebRTC!"))
// Create a WebRTC listener
listener, err := webrtc.Listen(tcpListener)
if err != nil {
log.Fatal(err)
}
defer listener.Close()
// Accept connections
conn, err := listener.Accept()
// Create a WebRTC packet connection
pconn, err := webrtc.DialPacketConn(underlying, "remote-peer-address")
if err != nil {
log.Fatal(err)
}
defer pconn.Close()
Testing
go test ./...
License
MIT License
Contributing
- Fork the repository
- Create your feature branch
- Submit a pull request
Description
WebRTC wrappers for
net.Conn
, net.Listener
, and net.PacketConn
that accept nested listeners, for WebTorrent-over-I2P in go-i2p-bt but useful in other places.
Languages
Go
100%