Marten Seemann 2bd316b89e store 0-RTT queues in the packet handler map
This prevents a race condition between receiving of 0-RTT packets and
the creation of new session.
2021-03-11 21:16:50 +08:00
2016-05-03 10:27:59 +02:00
2020-12-05 23:13:45 +07:00
2021-02-20 09:33:43 +08:00
2021-03-01 10:30:59 +08:00
2016-04-15 12:13:33 +02:00
2020-09-15 10:51:22 +07:00
2020-12-05 23:13:45 +07:00
2020-05-25 13:10:26 +07:00
2016-12-14 11:54:01 +01:00
2021-02-20 09:59:44 +08:00
2021-02-20 09:59:44 +08:00
2021-02-20 09:59:44 +08:00
2021-02-20 09:59:44 +08:00
2020-09-15 10:51:22 +07:00

A QUIC implementation in pure Go

PkgGoDev Travis Build Status CircleCI Build Status Windows Build Status Code Coverage

quic-go is an implementation of the QUIC protocol in Go. It implements the IETF QUIC draft-29, draft-32 and draft-34.

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.

When using quic-go as a library, please always use a tagged release. Only these releases use the official draft version numbers.

Guides

We currently support Go 1.15+, 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.

Description
No description provided
Readme MIT 46 MiB
Languages
Go 99.8%
Shell 0.1%