quic-go/quic-go

GitHub: quic-go/quic-go

纯 Go 语言实现的 QUIC 协议栈,完整支持 HTTP/3 及多种 QUIC 扩展,广泛用于 Web 服务、代理隧道和 P2P 网络等场景。

Stars: 11551 | Forks: 1548

# 纯 Go 实现的 QUIC [![文档](https://img.shields.io/badge/docs-quic--go.net-red?style=flat)](https://quic-go.net/docs/) [![PkgGoDev](https://pkg.go.dev/badge/github.com/quic-go/quic-go)](https://pkg.go.dev/github.com/quic-go/quic-go) [![代码覆盖率](https://img.shields.io/codecov/c/github/quic-go/quic-go/master.svg?style=flat-square)](https://codecov.io/gh/quic-go/quic-go/) [![模糊测试状态](https://oss-fuzz-build-logs.storage.googleapis.com/badges/quic-go.svg)](https://issues.oss-fuzz.com/issues?q=quic-go) quic-go 是 QUIC 协议([RFC 9000](https://datatracker.ietf.org/doc/html/rfc9000)、[RFC 9001](https://datatracker.ietf.org/doc/html/rfc9001)、[RFC 9002](https://datatracker.ietf.org/doc/html/rfc9002))的 Go 语言实现。它支持 HTTP/3([RFC 9114](https://datatracker.ietf.org/doc/html/rfc9114)),包括 QPACK([RFC 9204](https://datatracker.ietf.org/doc/html/rfc9204))和 HTTP Datagrams([RFC 9297](https://datatracker.ietf.org/doc/html/rfc9297))。 除了这些基础 RFC 之外,它还实现了以下 RFC: * 不可靠数据报扩展([RFC 9221](https://datatracker.ietf.org/doc/html/rfc9221)) * 数据报分组层路径 MTU 发现(DPLPMTUD,[RFC 8899](https://datatracker.ietf.org/doc/html/rfc8899)) * QUIC 版本 2([RFC 9369](https://datatracker.ietf.org/doc/html/rfc9369)) * 使用 qlog 的 QUIC 事件日志记录([draft-ietf-quic-qlog-main-schema](https://datatracker.ietf.org/doc/draft-ietf-quic-qlog-main-schema/) 和 [draft-ietf-quic-qlog-quic-events](https://datatracker.ietf.org/doc/draft-ietf-quic-qlog-quic-events/)) * 支持部分交付的 QUIC 流重置([draft-ietf-quic-reliable-stream-reset](https://datatracker.ietf.org/doc/html/draft-ietf-quic-reliable-stream-reset-07)) 基于 HTTP/3 的 WebTransport 支持([draft-ietf-webtrans-http3](https://datatracker.ietf.org/doc/draft-ietf-webtrans-http3/))在 [webtransport-go](https://github.com/quic-go/webtransport-go) 中实现。 详细的文档可以在 [quic-go.net](https://quic-go.net/docs/) 找到。 ## 使用 quic-go 的项目 | 项目 | 描述 | Stars | | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | | [AdGuardHome](https://github.com/AdguardTeam/AdGuardHome) | 免费、开源、功能强大的全网广告和跟踪器拦截 DNS 服务器。 | ![GitHub Repo stars](https://img.shields.io/github/stars/AdguardTeam/AdGuardHome?style=flat-square) | | [algernon](https://github.com/xyproto/algernon) | 小巧、独立、纯 Go 编写的 Web 服务器,支持 Lua、Markdown、HTTP/2、QUIC、Redis 和 PostgreSQL | ![GitHub Repo stars](https://img.shields.io/github/stars/xyproto/algernon?style=flat-square) | | [caddy](https://github.com/caddyserver/caddy/) | 快速、跨平台的 Web 服务器,支持自动 HTTPS | ![GitHub Repo stars](https://img.shields.io/github/stars/caddyserver/caddy?style=flat-square) | | [cloudflared](https://github.com/cloudflare/cloudflared) | 将流量从 Cloudflare 网络代理到您的本地源的隧道守护进程 | ![GitHub Repo stars](https://img.shields.io/github/stars/cloudflare/cloudflared?style=flat-square) | | [frp](https://github.com/fatedier/frp) | 一个快速的反向代理,帮助您将位于 NAT 或防火墙之后的本地服务器暴露到互联网 | ![GitHub Repo stars](https://img.shields.io/github/stars/fatedier/frp?style=flat-square) | | [go-libp2p](https://github.com/libp2p/go-libp2p) | Go 语言实现的 libp2p,为 [Kubo](https://github.com/ipfs/kubo) (IPFS) 和 [Lotus](https://github.com/filecoin-project/lotus) (Filecoin) 等提供动力 | ![GitHub Repo stars](https://img.shields.io/github/stars/libp2p/go-libp2p?style=flat-square) | | [gost](https://github.com/go-gost/gost) | 一个用 Go 编写的简单安全隧道 | ![GitHub Repo stars](https://img.shields.io/github/stars/go-gost/gost?style=flat-square) | | [Hysteria](https://github.com/apernet/hysteria) | 一个强大、极速且抗审查的代理工具 | ![GitHub Repo stars](https://img.shields.io/github/stars/apernet/hysteria?style=flat-square) | | [Mercure](https://github.com/dunglas/mercure) | 一个开放、简单、快速、可靠且节能的实时通信解决方案 | ![GitHub Repo stars](https://img.shields.io/github/stars/dunglas/mercure?style=flat-square) | | [nodepass](https://github.com/NodePassProject/nodepass) | 一个安全、高效的 TCP/UDP 隧道解决方案,利用预先建立的 TCP/QUIC/WebSocket 或 HTTP/2 连接,提供跨网络限制的快速、可靠访问。 | ![GitHub Repo stars](https://img.shields.io/github/stars/NodePassProject/nodepass?style=flat-square) | | [OONI Probe](https://github.com/ooni/probe-cli) | 下一代 OONI Probe。库和命令行工具。 | ![GitHub Repo stars](https://img.shields.io/github/stars/ooni/probe-cli?style=flat-square) | | [reverst](https://github.com/flipt-io/reverst) | 通过 HTTP/3 和 QUIC 实现的 Go 反向隧道 | ![GitHub Repo stars](https://img.shields.io/github/stars/flipt-io/reverst?style=flat-square) | | [RoadRunner](https://github.com/roadrunner-server/roadrunner) | 高性能 PHP 应用服务器,使用 Go 编写的进程管理器,并由插件提供支持 | ![GitHub Repo stars](https://img.shields.io/github/stars/roadrunner-server/roadrunner?style=flat-square) | | [syncthing](https://github.com/syncthing/syncthing/) | 开源的持续文件同步工具 | ![GitHub Repo stars](https://img.shields.io/github/stars/syncthing/syncthing?style=flat-square) | | [traefik](https://github.com/traefik/traefik) | 云原生应用代理 | ![GitHub Repo stars](https://img.shields.io/github/stars/traefik/traefik?style=flat-square) | | [v2ray-core](https://github.com/v2fly/v2ray-core) | 用于构建代理以绕过网络限制的平台 | ![GitHub Repo stars](https://img.shields.io/github/stars/v2fly/v2ray-core?style=flat-square) | | [YoMo](https://github.com/yomorun/yomo) | 面向地理位置分布式系统的流式 Serverless 框架 | ![GitHub Repo stars](https://img.shields.io/github/stars/yomorun/yomo?style=flat-square) | 如果您希望将您的项目添加到此列表中,请向我们提交 PR。 ## 发布策略 quic-go 始终致力于支持最新的两个 Go 版本。 ## 贡献 我们始终乐于欢迎新的贡献者!我们有许多独立的 issue 非常适合首次贡献者,它们被标记为[寻求帮助](https://github.com/quic-go/quic-go/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)。如果您有任何问题,请随时通过开启 issue 或发表评论来联系我们。 ## 许可证 代码使用 MIT 许可证授权。Logo 和品牌资产不在 MIT 许可证的范围内。有关完整的使用政策和详细信息,请参阅 [assets/LICENSE.md](https://github.com/quic-go/quic-go/tree/master/assets/LICENSE.md)。
标签:EVTX分析, HTTP/3, MTU发现, QPACK, QUIC协议, RFC 9000, SIP/QUIC, UDP通信, WebTransport, 不可靠数据报, 互联网标准, 传输层安全, 低延迟网络, 协议实现, 开源网络组件, 微服务通信, 日志审计, 流复位, 纯Go语言, 网络协议栈, 网络库, 网络编程, 高并发网络