Skip to content

quiche

TrendingActive
cloudflare/quiche

Cloudflare's Rust implementation of the QUIC transport protocol and HTTP/3, used across Cloudflare's edge, Android and curl.

View on GitHub
Stars
12.8k
Forks
1.2k
Watchers
12.8k
Open issues
382

Overview

quiche is Cloudflare’s implementation of the QUIC transport protocol and HTTP/3, written in Rust and following the IETF specifications. It powers HTTP/3 across Cloudflare’s edge network and is used well beyond it — Android’s DNS resolver relies on it for DNS over HTTP/3, and curl can be built with quiche to speak HTTP/3.

quiche deliberately provides a low-level API: it processes QUIC packets and manages connection state, while your application supplies the I/O (sockets) and an event loop with timers. That makes it easy to embed in existing networking stacks.

Key Features

  • QUIC transport and HTTP/3 per the IETF standards
  • Embeddable design: bring your own sockets and event loop
  • C API via the optional ffi feature, in addition to the native Rust API
  • Battle-tested at Cloudflare scale and in Android
  • Command-line tools (quiche-client, quiche-server) for experimenting and testing

Getting Started

Clone the repository, then try the example client against Cloudflare’s public QUIC test site:

git clone https://github.com/cloudflare/quiche
cd quiche
cargo run --bin quiche-client -- https://cloudflare-quic.com/

You can also start the example server with the bundled self-signed certificate:

cargo run --bin quiche-server -- --cert apps/src/bin/cert.crt --key apps/src/bin/cert.key

The example apps are for testing only and are not meant for production use. To use quiche in your own project, add the crate:

cargo add quiche

Who Uses quiche

  • Cloudflare — HTTP/3 support across the edge network
  • Android — DNS over HTTP/3 in the system resolver
  • curl — optional HTTP/3 backend

License

BSD 2-Clause License.

Similar open-source projects, ranked by shared categories and tags.

All Network projects →