A Sans-I/O aware, QUIC implementation for Rust.
More information about this crate can be found in the crate documentation.
- QUIC version 1 (RFC 9000), secured with TLS (RFC 9001).
- Loss detection and congestion control based on RFC 9002.
- Ordered and unordered streams, plus unreliable datagrams (RFC 9221).
- 0-RTT data for resumed connections.
- Connection migration and path MTU discovery based on RFC 8899.
- Async APIs for Linux, macOS and Windows; pluggable cryptography with rustls and ring.
- Minimum supported Rust version: 1.88.0.
Add quic to your Cargo.toml:
[dependencies]
quic = "0.11"Then import the types needed to create an endpoint:
use quic::{ClientConfig, Endpoint};
fn main() {
// ...
}See the examples for complete client and server implementations.
Licensed under either of Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
The project is based on a fork of quinn.