Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qingchoulove/tunnel
That enables NAT traversal and QUIC support for building peer-to-peer (P2P) applications:
https://github.com/qingchoulove/tunnel
holepunch p2p quic
Last synced: about 1 month ago
JSON representation
That enables NAT traversal and QUIC support for building peer-to-peer (P2P) applications:
- Host: GitHub
- URL: https://github.com/qingchoulove/tunnel
- Owner: qingchoulove
- Created: 2023-08-23T06:15:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-11T06:34:10.000Z (12 months ago)
- Last Synced: 2024-01-11T10:51:43.439Z (12 months ago)
- Topics: holepunch, p2p, quic
- Language: Go
- Homepage:
- Size: 28.3 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tunnel(Developing)
## Description
Tunnel that enables NAT traversal and QUIC support for building peer-to-peer (P2P) applications:
Tunnel is an open-source Golang package that provides Network Address Translation (NAT) traversal and Quick UDP Internet
Connections (QUIC) protocol functionality to streamline the development of decentralized, serverless P2P applications.The core capabilities of Tunnel include:
NAT Traversal via UDP Hole Punching - Tunnel base the Session Traversal Utilities for NAT (STUN) protocol and
leverages birthday attacks to establish direct peer-to-peer connectivity through symmetric NAT devices.Integration of the QUIC Protocol - Tunnel incorporates QUIC protocol wrappers that facilitate P2P communication with
encryption, authentication, congestion control, and connection migration.Peer Discovery Mechanisms - Tunnel offers peer discovery APIs to locate other peers across the P2P network and exchange
connection information.User-Friendly API - The GoHole API abstracts away the complexities of NAT traversal and QUIC. Developers can focus on
application logic while GoHole handles the underlying P2P communication.Tunnel empowers developers to rapidly construct decentralized, serverless applications such as messaging, file sharing,
real-time communication, and more. By managing NAT traversal and transport-layer security, Tunnel streamlines P2P
development in Golang.The networking boilerplate code is handled by Tunnel:
- UDP hole punching for NAT traversal
- QUIC encryption and multiplexing
- Peer discovery and info exchange
- Connection management, migration, and resilienceTunnel is available on Github.
## Example
## Reference
- [Birthday Problem](https://en.wikipedia.org/wiki/Birthday_problem)
- [how-nat-traversal-works](https://tailscale.com/blog/how-nat-traversal-works/)