Marten Seemann 83695e6f71 don't close the stream when the http.Request.Body is closed
On the server side, the http.Request is consumed by the HTTP handler.
The HTTP handler may close the body (it doesn't have to though). In any
case, closing the stream is the wrong thing to do, since that closes the
write side of the stream. All we want to do is cancel the stream (if the
EOF hasn't been read yet).
2020-06-02 14:54:21 +07:00
2020-01-26 17:41:53 +07:00
2016-05-03 10:27:59 +02:00
2020-01-17 13:42:57 +07:00
2016-04-15 12:13:33 +02:00
2020-04-04 13:17:58 +07:00
2020-05-23 08:18:02 +07:00
2020-05-31 11:02:09 +07:00
2020-01-26 17:41:53 +07:00
2020-01-26 17:41:53 +07:00
2017-03-10 00:07:27 +07:00
2020-05-25 13:10:26 +07:00
2016-12-14 11:54:01 +01:00
2020-05-12 12:36:32 +07:00
2018-10-30 10:20:39 +07:00

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 both Go 1.13.x and Go 1.14+, 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%