Crate tuic

source ·
Expand description

tuic

Delicately-TUICed 0-RTT proxy protocol

Version Documentation License

Overview

The TUIC protocol specification can be found in SPEC.md. This crate provides the low-level abstract of the TUIC protocol in Rust.

Some optional features that can be enabled:

  • model - Provides a connection model abstraction of the TUIC protocol, with packet fragmentation and task counter built-in. No I/O operation is involved.
  • marshal - Provides methods for (un)marsalling the protocol in sync flavor.
  • async_marshal - Provides methods for (un)marsalling the protocol in async flavor.

The root of the protocol abstraction is the Header.

Versioning Syntax

5.0.0-rc0
^ ^ ^  ^
| | |  |- Pre-release version, considered to be unstable
| | |---- Patch version, no breaking changes
| |------ Major version of a specific TUIC protocol version, may have breaking changes
|-------- TUIC protocol version

To avoid breaking changes, import tuic into Cargo.toml using:

tuic = "5.0.*"

License

This library is licensed under GNU General Public License v3.0

However, the concept of the TUIC protocol is license-free. You can implement, modify, and redistribute the protocol without any restrictions, even for commercial use

Modules

  • An abstraction of a TUIC connection, with packet fragmentation management and task counters. No I/O operation is involved internally

Structs

Enums

  • Variable-length field that encodes the network address
  • The command header for negotiating tasks
  • Errors that can occur when unmarshalling a packet

Constants