Skip to content

tuic-protocol/tuic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TUIC Protocol

Contributor Covenant GitHub License

TUIC defines a standardized network proxy protocol for relaying TCP and UDP traffic.

Motivation

  • Proxying TCP and UDP traffic in 0-RTT.
  • Achieving Full Cone NAT compatibility for UDP proxying.
  • Supporting both lossy and lossless (via streams) UDP proxying.
  • Leveraging the advantages of QUIC, including:
    • Integrated secure transport and reliable data transfer.
    • Bidirectional user-space congestion control.
    • Stream multiplexing.
    • Connection migration.
  • Prioritizing simplicity, flexibility, and future extensibility.

There is no official implementation of the TUIC protocol in this repository. This is to focus on the protocol design itself and avoid duplicating efforts on features already well-established in other implementations.

Specification

TUIC is standardized as an implementation-agnostic protocol. The protocol specification is defined in SPEC.md.

For a specific protocol version, implementation changes are not expected. However, different protocol versions are not guaranteed to be compatible with each other.

The latest protocol version is 0x05.

Implementations

Third-party implementations of the TUIC protocol are a fundamental part of the community and are highly appreciated and encouraged.

The implementations listed below are sorted alphabetically by name. Note that front-end applications based on other implementations are not listed here.

If your implementation is not listed, feel free to open a pull request to add it.

Server Side

Name Open Source
mihomo Yes
sing-box Yes
tuic (Itsusinn/tuic) Yes

Client Side

Name Supported Platforms Open Source
ClashRS Cross-platform Yes
dae Linux Yes
mihomo Cross-platform Yes
Shadowrocket iPhone/iPad/Apple TV No
sing-box Cross-platform Yes
Stash Apple platforms No
Surge Apple platforms No
tuic (Itsusinn/tuic) Cross-platform Yes

Contributing

The TUIC community welcomes and appreciates all contributions. Before contributing, please review our Code of Conduct and Contributing Guidelines.

English is the preferred language for communication in this repository.

Learn more about why the TUIC project is being restarted (posted in Simplified Chinese)

License

This repository is licensed under the GNU General Public License v3.0.

However, the concept of the TUIC protocol is license-free. The protocol itself is not trademarked or patented. You can implement, modify, and redistribute the protocol without any restrictions.