quic-go

A QUIC implementation in pure go

Github星跟踪图

A QUIC implementation in pure Go

Godoc Reference
Travis Build Status
CircleCI Build Status
Windows Build Status
Code Coverage
fuzzit

quic-go is an implementation of the QUIC protocol in Go. It roughly implements the IETF QUIC draft, although we don't fully support any of the draft versions at the moment.

Version compatibility

Since quic-go is under active development, there's no guarantee that two builds of different commits are interoperable. The QUIC version used in the master branch is just a placeholder, and should not be considered stable.

If you want to use quic-go as a library in other projects, please consider using a tagged release. These releases expose experimental QUIC versions, which are guaranteed to be stable.

Guides

We currently support Go 1.13+, with Go modules support enabled.

Running tests:

go test ./...

QUIC without HTTP/3

Take a look at this echo example.

Usage

As a server

See the example server. Starting a QUIC server is very similar to the standard lib http in go:

http.Handle("/", http.FileServer(http.Dir(wwwDir)))
http3.ListenAndServeQUIC("localhost:4242", "/path/to/cert/chain.pem", "/path/to/privkey.pem", nil)

As a client

See the example client. Use a http3.RoundTripper as a Transport in a http.Client.

http.Client{
  Transport: &http3.RoundTripper{},
}

Contributing

We are always happy to welcome new contributors! We have a number of self-contained issues that are suitable for first-time contributors, they are tagged with help wanted. If you have any questions, please feel free to reach out by opening an issue or leaving a comment.

主要指标

概览
名称与所有者quic-go/quic-go
主编程语言Go
编程语言Go (语言数: 3)
平台
许可证MIT License
所有者活动
创建于2016-04-06 20:16:27
推送于2025-07-14 21:25:47
最后一次提交2025-07-13 00:58:30
发布数119
最新版本名称v0.53.0 (发布于 2025-06-24 23:33:09)
第一版名称race (发布于 2016-08-06 14:45:04)
用户参与
星数10.8k
关注者数213
派生数1.4k
提交数6.9k
已启用问题?
问题数2156
打开的问题数149
拉请求数2720
打开的拉请求数39
关闭的拉请求数332
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?