This wiki tracks known implementations of QUIC. See also our Tools listing. Current interop status; make sure you are looking at or editing the correct tab.
Please add your implementation below. Keep sorted alphabetically. There are three sections, one for "IETF QUIC Transport", one for "HTTP/3C", and one for "QPACK". Entries may appear in multiple sections e.g. where a stack provides both IETF QUIC Transport and HTTP/3.
If you are working on a QUIC implementation, please consider joining the QUIC Developers Slack Channel. Also, if possible, please set up a public server and publish its details below, so others can try and interoperate with your code.
The following stacks implement the IETF versions of QUIC Transport. They may include an application layer mapping other than IETF HTTP over QUIC e.g. HTTP/0.9
QUIC implementation using Python and asyncio.
0xff00001d
, 0xff00001e
, 0xff00001f
, 0xff000020
, 0x1
AppleQUIC is a client and server implementation.
0xff00001d
+ 0x00000001
QUIC implementation in Apache Traffic Server
0xff00001d
Chromium's QUIC Implementation (draft-29 supported in Chrome 85.0.4171.0 and later).
Q043
, Q046
, Q050
, T050
, T051
, 0xff00001b
, 0xff00001d
h3-Q043
, h3-Q046
, h3-Q050
, h3-T050
, h3-T051
, h3-27
, h3-29
NOTE: Not to be confused with Cloudflare quiche.
QUIC implementation in F5 TMOS
0xff00001d
, 0xff000020
h3-29
, h3-32
. hq-29
and hq-32
available upon request.QUIC - HTTP/3 implementation in haproxy
0xff00001d
, 0x00000001
, 0x709a50c4
h3-29
, h3
, hq-interop
0xff00001d
Kwik is a QUIC client (and client library) implementation in Java.
0xff00001d
, 0xff00001e
, 0xff00001f
, 0xff000020
, 0x1
LiteSpeed QUIC and HTTP/3 library. Works on Linux, FreeBSD, MacOS, Android, and Windows. Turn-key open-source web server that uses lsquic is available at openlitespeed.org in both source and package forms. Bindings are available for Crystal and Lisp.
0x00000001
, 0xFF000022
, 0xFF00001D
, 0xFF00001B
GET /
for details.Microsoft's general purpose (cross-platform) QUIC implementation. Optimized for high performance. More documentation here.
0xff00001D
, 0x1
mvfst (pronounced move fast) is an implementation of QUIC by Facebook
0xff00001b
Mozilla/Firefox QUIC and HTTP3 implementation.
0x1
, 0x709a50c4
; h3ngtcp2 project is an effort to implement IETF QUIC protocol
0x00000001
, 0xff00001d
, 0xff00001e
, 0xff00001f
, and 0xff000020
QUIC and HTTP/3 server implementation in nginx
0xff00001b
.. 0xff000020
Implementation of QUIC for NGINX based on quiche, by Cloudflare.
0x00000001
, 0xff00001d
A small(ish) implementation of QUIC in C, to explore the protocol and the API, for example for DNS over QUIC. Relies on PicoTLS for TLS 1.3. MIT license. Tested on Windows, Linux, FreeBSD/IOS.
0xff000020
, 0xff00001f
, 0xff00001e
, 0xff00001d
, 0xff00001c
, 0xff00001b
The PQUIC implementation, a framework that enables QUIC clients and servers to dynamically exchange protocol plugins that extend the protocol on a per-connection basis.
0xff00001d
QUANT (QUIC Userspace Accelerated Network Transfers), a BSD-licensed C11 implementation on top of the zero-copy warpcore userspace UDP/IPv4 stack for the netmap packet I/O framework. (Also works over the standard Sockets API.)
QUANT is a general transport library and does NOT implement H3.
0xff000021
, 0xff000022
, 0x1
quiche is an implementation of the QUIC transport protocol as specified by the IETF. It provides a low level API for processing QUIC packets and handling connection state, while leaving I/O (including dealing with sockets) to the application. Example client and server are also provided.
NOTE: Not to be confused with Google QUICHE.
0x00000001
, 0xff00001d
QUIC protocol implementation for H2O server
Rust implementation with both a synchronous (sans-I/O) interface and an async interface, using rustls for TLS.
A QUIC implementation in Go.
0x00000001
XQUIC Library released by Alibaba is a cross-platform implementation of IETF QUIC and HTTP/3 protocol.
0x00000001
, 0xFF00001D
The following implement HTTP/3. The "Transport library" field identifies one (or more) of the above stacks if applicable.
See entry in the "IETF QUIC Transport" section.
Flupke is a HTTP3 client build on top of Kwik.
LiteSpeed QUIC and HTTP/3 library. Works on Linux, FreeBSD, MacOS, and Windows. Turn-key open-source web server that uses lsquic is available at openlitespeed.org in both source and package forms.
0x00000001
, 0xFF000022
, 0xFF00001D
, 0xFF00001B
nghttp3 is an implementation of HTTP/3 mapping over QUIC and QPACK in C. It does not depend on any particular QUIC transport implementation.
proxygen implements HTTP/3 mapping over QUIC and QPACK in C++, with MVFST as the transport.
See entry in the "IETF QUIC Transport" section.
See entry in the "IETF QUIC Transport" section.
A standalone, portable library (Linux, FreeBSD, Windows, MacOS) written in vanilla C. Bindings are available for Go, Python, and TypeScript.
See entry in the "IETF QUIC Transport" section.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3