Go implementation of uTP (micro transport protocol) used with BitTorrent, prioritizing simplicity and reliability.
utp is a Go implementation of uTP (micro transport protocol), a UDP-based transport protocol commonly used with BitTorrent. It provides congestion-controlled, reliable communication over UDP as an alternative to TCP, focusing on simplicity and practical reliability rather than strict specification compliance.
Go developers building P2P applications, BitTorrent clients, or networking tools that require efficient UDP-based transport with congestion control.
Developers choose utp for its straightforward, reliable implementation of uTP optimized for real-world use, with features like multiple connection support on a single PacketConn and raw access for protocol sharing.
Use anacrolix/go-libutp instead
Supports multiple uTP connections on a single PacketConn, enabling efficient handling for BitTorrent clients and P2P applications, as stated in the README.
Provides raw access to the underlying PacketConn for non-uTP usage, allowing it to be shared with protocols like DHT, which is highlighted as a key feature.
Prioritizes straightforward implementation and practical reliability over complex specification adherence, making it robust for real-world use cases like BitTorrent.
Lacks MTU path discovery, as admitted in the README, which could impact performance in networks with varying MTUs due to simplified design choices.
Uses a fixed 64-slot selective acknowledgment window, limiting flexibility for advanced networking scenarios or dynamic adjustments, as per implementation characteristics.
The README is minimal and relies on GoDoc for detailed API, requiring additional effort for developers to understand setup and advanced usage.
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
Pure Go implementation of the WebRTC API
Cloudflare Tunnel client
Reliable UDP Transmission Optimizer based on KCP: Enhancing network efficiency in poor connectivity environments.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.