Popularity
9.4
Growing
Activity
9.5
Growing
5,162
200
652

Programming language: Go
License: MIT License
Tags: Networking    
Latest version: v0.19.3

quic-go alternatives and similar packages

Based on the "Networking" category.
Alternatively, view quic-go alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of quic-go or a related project?

Add another 'Networking' Package

README

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](example/echo/echo.go).

Usage

As a server

See the [example server](example/main.go). 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](example/client/main.go). 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.