Skip to content

Repository files navigation

quic

A Sans-I/O aware, QUIC implementation for Rust.

CI GitHub License Crates.io

More information about this crate can be found in the crate documentation.

Features

  • 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.

Usage

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.

License

Licensed under either of Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).

Contribution

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.

Accolades

The project is based on a fork of quinn.

About

QUIC library written in Rust

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages