1
0

update README.md

This commit is contained in:
EAimTY 2023-06-08 16:23:06 +09:00
parent 6e91fc99f1
commit 13065e92b3
6 changed files with 28 additions and 22 deletions

View File

@ -6,7 +6,7 @@ Delicately-TUICed 0-RTT proxy protocol
## Introduction
TUIC is a proxy protocol focusing on the simplicity. It aims to minimize the additional handshake latency caused by relaying as much as possible
TUIC is a proxy protocol focusing on minimize the additional handshake latency caused by relaying as much as possible, as well as keeping the protocol itself being simple and easy to implement
TUIC is originally designed to be used on top of the [QUIC](https://en.wikipedia.org/wiki/QUIC) protocol, but you can use it with any other protocol, e.g. TCP, in theory
@ -19,10 +19,12 @@ When paired with QUIC, TUIC can achieve:
- `native`: Having characteristics of native UDP mechanism
- `quic`: Transferring UDP packets losslessly using QUIC streams
- Fully multiplexed
- All the advantages of QUIC:
- All the advantages of QUIC, including but not limited to:
- Bidirectional user-space congestion control
- Connection migration
- Optional 0-RTT connection handshake
- Connection migration
Fully-detailed TUIC protocol specification can be found in [SPEC.md](https://github.com/EAimTY/tuic/blob/dev/SPEC.md)
## Overview
@ -35,4 +37,6 @@ There are 4 crates provided in this repository:
## License
GNU General Public License v3.0
Code in this repository is licensed under [GNU General Public License v3.0](https://github.com/EAimTY/tuic/blob/dev/LICENSE)
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

View File

@ -5,6 +5,12 @@ Minimalistic TUIC client implementation as a reference
[![Version](https://img.shields.io/crates/v/tuic-client.svg?style=flat)](https://crates.io/crates/tuic-client)
[![License](https://img.shields.io/crates/l/tuic-client.svg?style=flat)](https://github.com/EAimTY/tuic/blob/dev/LICENSE)
# Overview
The main goal of this TUIC client implementation is not to provide a full-featured, production-ready TUIC client, but to provide a minimal reference for the TUIC protocol client implementation.
This implementation only contains the most basic requirements of a functional TUIC protocol client. If you are looking for features like HTTP-inbound, load-balance, etc., try other implementations, or implement them yourself.
## Usage
Download the latest binary from [releases](https://github.com/EAimTY/tuic/releases).
@ -132,12 +138,6 @@ tuic-client -c PATH/TO/CONFIG
}
```
## Opinions on Advanced Features
This TUIC client implementation is intended to be minimalistic. It is mainly used as a reference and verification of the TUIC protocol specification.
This implementation only contains the most basic requirements of a functional TUIC protocol client. It does not includes any advanced features, such as outbound control, obfuscation, etc. If you want them, try other implementations, or implement them yourself.
## License
GNU General Public License v3.0

View File

@ -10,7 +10,7 @@ A thin layer on top of [quinn](https://github.com/quinn-rs/quinn) to provide fun
This crate provides a wrapper [`Connection`](https://docs.rs/tuic-quinn/latest/tuic_quinn/struct.Connection.html) around [`quinn::Connection`](https://docs.rs/quinn/latest/quinn/struct.Connection.html). It can be used to perform TUIC operations.
Note that there is no TUIC protocol flow state machine abstraction in this crate. You need to implement it yourself.
Note that there is no state machine abstraction for the TUIC protocol flow in this crate. You need to implement it yourself.
## License

View File

@ -5,6 +5,12 @@ Minimalistic TUIC server implementation as a reference
[![Version](https://img.shields.io/crates/v/tuic-server.svg?style=flat)](https://crates.io/crates/tuic-server)
[![License](https://img.shields.io/crates/l/tuic-server.svg?style=flat)](https://github.com/EAimTY/tuic/blob/dev/LICENSE)
# Overview
The main goal of this TUIC server implementation is not to provide a full-featured, production-ready TUIC server, but to provide a minimal reference for the TUIC protocol server implementation.
This implementation only contains the most basic requirements of a functional TUIC protocol server. If you are looking for features like outbound-control, DNS-caching, etc., try other implementations, or implement them yourself.
## Usage
Download the latest binary from [releases](https://github.com/EAimTY/tuic/releases).
@ -103,12 +109,6 @@ tuic-server -c PATH/TO/CONFIG
}
```
## Opinions on Advanced Features
This TUIC server implementation is intended to be minimalistic. It is mainly used as a reference and verification of the TUIC protocol specification.
This implementation only contains the most basic requirements of a functional TUIC protocol server. It does not includes any advanced features, such as outbound control, obfuscation, etc. If you want them, try other implementations, or implement them yourself.
## License
GNU General Public License v3.0

View File

@ -8,22 +8,22 @@ Delicately-TUICed 0-RTT proxy protocol
## Overview
The TUIC protocol specification can be found in [SPEC.md](https://github.com/EAimTY/tuic/blob/dev/tuic/SPEC.md). This crate provides the low-level abstract of the TUIC protocol in Rust.
The TUIC protocol specification can be found in [SPEC.md](https://github.com/EAimTY/tuic/blob/dev/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 model of the TUIC protocol, with packet fragmentation and task counter built-in. No I/O operation is involved.
- `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`](https://docs.rs/tuic/latest/tuic/enum.Header.html).
## Semantic Versioning Syntax
## Versioning Syntax
```
5.0.0-rc0
^ ^ ^ ^
| | | |- Pre-release version
| | | |- 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
@ -37,4 +37,6 @@ tuic = "5.0.*"
## License
GNU General Public License v3.0
This library is licensed under [GNU General Public License v3.0](https://github.com/EAimTY/tuic/blob/dev/LICENSE)
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