QUIC 开源实现列表

QUIC的全称是 Quick UDP Internet Connections protocol,由 Google 设计提出,目前由 IETF 工作组推动进展,其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。本文章整理目前各大厂及主流编程语言的开源 QUIC 实现。

在线社区:discord/quic

维护者:YoMo

C/C++

Name Version Roles Handshake GitHub
Microsoft's MsQuic draft-29/v1 client, server TLS 1.3 RFC github.com/microsoft/ms
Facebook's mvfst draft-29 library, client, server TLS 1.3 github.com/facebookincu
Google's Chromium Q043, Q046, Q050, T050, T051, draft-27, draft-29 library, client, server QUIC Crypto, TLS chromium.org/quic/playi
ats (Apache Traffic Server) draft-29 client. server TLS 1.3 cwiki.apache.org/conflu
LiteSpeed's lsquic v1, Draft-34, Draft-29, Draft-27, Q043, Q046, and Q050 library, client, server QUIC Crypto, RFC 8446 github.com/litespeedtec
ngtcp2 draft-29, draft-30, draft-31, and draft-32 library, client, server TLSv1.3 (RFC 8446) github.com/ngtcp2/ngtcp
Cloudflare's nginx-cloudflare draft-27, draft-28, draft-29 server TLSv1.3 (RFC8446) github.com/cloudflare/q
picoquic draft-32/31/30/29/28/27 library and test tools, test client, test server TLS 1.3 (using picotls) github.com/private-octo
Pluginized QUIC draft-29 library, client, server TLS 1.3 (using picotls) github.com/p-quic/pquic
quant draft-33, draft-34, v1 library, client, server TLS 1.3 github.com/NTAP/quant
Fastly's quicly draft-27 client, server TLS 1.3 (final) github.com/h2o/quicly
nginx-quic draft-27 .. draft-32 server TLSv1.3 (RFC8446) hg.nginx.org/nginx-quic
XQUIC draft-29,v1 client, server TLS 1.3 github.com/alibaba/xqui

Rust

Name Version Roles Handshake GitHub
Cloudflare's quiche draft-27, draft-28, draft-29 library, client, server TLSv1.3 (RFC8446) github.com/cloudflare/q
Mozilla/Firefox's Neqo draft-27 through version 1 library, client, server TLS 1.3 github.com/mozilla/neqo
Quinn draft-28 library, client, server TLS 1.3 github.com/djc/quinn

Go

Name Version Roles Handshake GitHub
quic-go always the current draft library, client, server TLS 1.3 RFC github.com/lucas-clemen

Java

Name Version Roles Handshake GitHub
kwik draft-29, draft-30, draft-31, draft-32 library, client TLS 1.3 bitbucket.org/pjtr/kwik

Node.js

Name Version Roles Handshake GitHub
Node.js QUIC draft-25 client, server TLS 1.3 github.com/nodejs/quic
quicker draft-22 client, server TLS 1.3 github.com/rmarx/quicke

Python

Name Version Roles Handshake GitHub
aioquic draft-29 through version 1 library, client, server TLS 1.3 github.com/aiortc/aioqu

Haskell

Name Version Roles Handshake GitHub
Haskell quic draft-29 library, client, server TLS 1.3 github.com/kazu-yamamot

参考链接


QUIC 开源实现列表

QUIC的五大特性及外网表现

HTTP从上世纪90年代诞生起,就被约定为跑在TCP协议之上的应用层协议。而后虽然HTTP协议版本从0.9到2.0,上层协议不断优化,在享受TCP带来的有序可靠的数据服务同时,却也始终绕不开TCP协议的一些弊端。此时一种基于UDP的“快”协议,不但能可靠的向上层提供数据,还能更快的把这些数据交付上去,其更革命性的给出了提升互联网交互速度的新思路。

继续阅读QUIC的五大特性及外网表现