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?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?