Need help with quic-go?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

lucas-clemente
5.9K Stars 780 Forks MIT License 5.6K Commits 96 Opened issues

Description

A QUIC implementation in pure go

Services available

!
?

Need anything else?

Contributors list

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, RFC 9000 protocol in Go. In addition to RFC 9000, it currently implements the IETF QUIC draft-29. Support for draft-29 will eventually be dropped, as it is phased out of the ecosystem.

Guides

We currently support Go 1.16.x and Go 1.17.x.

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{},
}

Projects using quic-go

| Project | Description | Stars | |------------------------------------------------------|--------------------------------------------------------------------------------------------------------|-------| | algernon | Small self-contained pure-Go web server with Lua, Markdown, HTTP/2, QUIC, Redis and PostgreSQL support | GitHub Repo stars | | caddy | Fast, multi-platform web server with automatic HTTPS | GitHub Repo stars | | go-ipfs | IPFS implementation in go | GitHub Repo stars | | nextdns | NextDNS CLI client (DoH Proxy) | GitHub Repo stars | | syncthing | Open Source Continuous File Synchronization | GitHub Repo stars | | traefik | The Cloud Native Application Proxy | GitHub Repo stars | | v2ray-core | A platform for building proxies to bypass network restrictions | GitHub Repo stars |

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.