cloudflared-mirror/vendor/github.com/lucas-clemente/quic-go
Sudarsan Reddy 1082ac1c36 TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
..
internal TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
logging TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
quicvarint TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
.editorconfig TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
.gitignore TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
.golangci.yml TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
.travis.yml TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
Changelog.md TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
LICENSE TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
README.md TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
buffer_pool.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
client.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
closed_session.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
codecov.yml TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
config.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
conn.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
conn_generic.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
conn_helper_darwin.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
conn_helper_freebsd.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
conn_helper_linux.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
conn_id_generator.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
conn_id_manager.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
conn_oob.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
conn_windows.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
crypto_stream.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
crypto_stream_manager.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
datagram_queue.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
frame_sorter.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
framer.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
go.mod TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
go.sum TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
interface.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
mockgen.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
mockgen_private.sh TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
mtu_discoverer.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
multiplexer.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
packet_handler_map.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
packet_packer.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
packet_unpacker.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
receive_stream.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
retransmission_queue.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
send_conn.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
send_queue.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
send_stream.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
server.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
session.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
stream.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
streams_map.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
streams_map_generic_helper.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
streams_map_incoming_bidi.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
streams_map_incoming_generic.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
streams_map_incoming_uni.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
streams_map_outgoing_bidi.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
streams_map_outgoing_generic.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
streams_map_outgoing_uni.go TUN-4922: Downgrade quic-go library to 0.20.0 2021-08-13 15:45:13 +01:00
token_store.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00
window_update_queue.go TUN-4597: Add a QUIC server skeleton 2021-08-03 10:03:47 +00:00

README.md

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.