Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. utp

utp

MPL-2.0Go

Go implementation of uTP (micro transport protocol) used with BitTorrent, prioritizing simplicity and reliability.

Visit WebsiteGitHubGitHub
183 stars37 forks0 contributors

What is utp?

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.

Target Audience

Go developers building P2P applications, BitTorrent clients, or networking tools that require efficient UDP-based transport with congestion control.

Value Proposition

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.

Overview

Use anacrolix/go-libutp instead

Use Cases

Best For

  • Implementing uTP transport in BitTorrent clients
  • Building P2P applications requiring congestion-controlled UDP
  • Creating networking tools that need reliable UDP communication
  • Sharing PacketConn resources between uTP and other protocols like DHT
  • Developing lightweight transport layers for Go applications
  • Experimenting with micro transport protocol implementations

Not Ideal For

  • Applications requiring strict adherence to the uTP specification
  • Networking tools that need MTU path discovery for optimal performance
  • Projects that require configurable selective acknowledgment windows
  • Developers not using the Go programming language

Pros & Cons

Pros

Multiple Connection Support

Supports multiple uTP connections on a single PacketConn, enabling efficient handling for BitTorrent clients and P2P applications, as stated in the README.

Raw PacketConn Access

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.

Simplicity-Focused Design

Prioritizes straightforward implementation and practical reliability over complex specification adherence, making it robust for real-world use cases like BitTorrent.

Cons

No MTU Discovery

Lacks MTU path discovery, as admitted in the README, which could impact performance in networks with varying MTUs due to simplified design choices.

Fixed Selective Ack Window

Uses a fixed 64-slot selective acknowledgment window, limiting flexibility for advanced networking scenarios or dynamic adjustments, as per implementation characteristics.

Sparse Documentation

The README is minimal and relies on GoDoc for detailed API, requiring additional effort for developers to understand setup and advanced usage.

Frequently Asked Questions

Quick Stats

Stars183
Forks37
Contributors0
Open Issues4
Last commit3 years ago
CreatedSince 2015

Tags

#transport-protocol#bittorrent#transport-layer#go#p2p#deprecated-repo#networking#udp

Built With

G
Go

Links & Resources

Website

Included in

Go169.1k
Auto-fetched 16 hours ago

Related Projects

fasthttpfasthttp

Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

Stars23,420
Forks1,841
Last commit3 days ago
webrtcwebrtc

Pure Go implementation of the WebRTC API

Stars16,661
Forks1,872
Last commit1 day ago
cloudflaredcloudflared

Cloudflare Tunnel client

Stars14,949
Forks1,363
Last commit1 day ago
kcptunkcptun

Reliable UDP Transmission Optimizer based on KCP: Enhancing network efficiency in poor connectivity environments.

Stars14,403
Forks2,631
Last commit3 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub