Code Monkey home page Code Monkey logo

tunnel's Introduction

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 resilience

Tunnel is available on Github.

Example

Reference

tunnel's People

Contributors

qingchoulove avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

xiangxud

tunnel's Issues

QUIC NAT

Can I upload an example that works with QUIC

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.