From 43b479eb9272c7b2d7b3e19f01a3bffc4fddee2b Mon Sep 17 00:00:00 2001 From: EAimTY Date: Sat, 4 Feb 2023 19:34:26 +0900 Subject: [PATCH] README.md --- README.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d358a95 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# TUIC + +Delicately-TUICed 0-RTT proxy protocol + +**Warning: TUIC's [dev](https://github.com/EAimTY/tuic/tree/dev) branch is under heavy development. For end-user, please check out the latest released branch** + +## 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 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 + +When paired with QUIC, TUIC can achieve: + +- 0-RTT TCP proxying +- 0-RTT UDP proxying with NAT type [Full Cone](https://www.rfc-editor.org/rfc/rfc3489#section-5) +- 0-RTT authentication +- Two UDP proxying modes: + - `native`: Having characteristics of native UDP mechanism + - `quic`: Transferring UDP packets losslessly using QUIC streams +- Fully multiplexed +- All the advantages of QUIC: + - Bidirectional user-space congestion control + - Connection migration + - Optional 0-RTT connection handshake + +## Overview + +There are 4 crates provided in this repository: + +- **[tuic](https://github.com/EAimTY/tuic/tree/dev/tuic)** - Library. The protocol itself, protcol & model abstraction, synchronous / asynchronous marshalling +- **[tuic-quinn](https://github.com/EAimTY/tuic/tree/dev/tuic-quinn)** - Library. A thin layer on top of [quinn](https://github.com/quinn-rs/quinn) to provide functions for TUIC +- **[tuic-server](https://github.com/EAimTY/tuic/tree/dev/tuic-server)** - Binary. Minimalistic TUIC server implementation as a reference, focusing on the simplicity +- **[tuic-client](https://github.com/EAimTY/tuic/tree/dev/tuic-client)** - Binary. Minimalistic TUIC client implementation as a reference, focusing on the simplicity + +## License + +GNU General Public License v3.0 \ No newline at end of file