# quic-go/quic-go

A production-ready QUIC implementation in pure Go

Repository: https://github.com/quic-go/quic-go
Canonical: https://ross.abutalabs.com/products/quic-go
Homepage: https://quic-go.net
Language: Go
License: MIT
License Family: permissive
Topics: quic, quic-server, protocol, quic-client, golang, go, http3, qlog
Last push: 2026-08-26T10:21:44+00:00

## Health v2 (maintenance only)
Score: 97/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 94, longevity 100
- inputs: {"age_days": 3801, "days_push": 7, "days_rel": 40, "gap_med": 29.0, "n_releases_24m": 21}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 11750, forks 1628 (observed 2026-08-28T04:10:49.656109+00:00)

## What it is
quic-go is a production-ready, pure Go implementation of the QUIC transport protocol (RFC 9000/9001/9002) with support for HTTP/3, datagrams, connection migration, multipath, and qlog event logging. It enables Go applications to run QUIC servers and clients, serve HTTP/3 alongside HTTP/1.1 and HTTP/2, and build related protocols like WebTransport and MASQUE proxying.

## Use cases
- serve HTTP/3 from a Go web server
- build a QUIC client or server in Go
- implement low-latency streaming over QUIC streams and datagrams
- proxy UDP or IP traffic over HTTP (CONNECT-UDP / CONNECT-IP)
- add connection migration and multipath to a networked application
- log QUIC connection events with qlog for debugging
- build real-time web communication with WebTransport

## When to choose
- you need QUIC or HTTP/3 support in a Go application
- you want a mature, widely used, RFC-compliant QUIC stack
- you need advanced QUIC features like 0-RTT, datagrams, connection migration, or multipath
- you are building proxies or tunnels using MASQUE-style HTTP proxying

## When to avoid
- your project is not in Go
- you only need plain TCP-based HTTP/1.1 or HTTP/2 without QUIC
- you need a QUIC implementation for a non-Go runtime with different language requirements
- you need WebTransport itself - use the companion webtransport-go project built on top of quic-go

## Facets
- artifact type: library
- maturity: stable
- function: http-server, http-client, networking, security, tracing
- domain: networking, web-development, backend, apis
- platform: go, cross-platform, wasm
- tags: quic, http3, qpack, qlog, tls, udp, transport-protocol, webtransport, masque, rfc9000, real-time

## Member repositories
- quic-go/quic-go (main) score 97

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:49.656109+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:15:21.178726+00:00, confidence not recorded.
  - readme: https://github.com/quic-go/quic-go (fetched 2026-08-28T04:10:49.656109+00:00, sha cffd4c1cc712)
  - homepage: https://quic-go.net (fetched 2026-08-29T08:13:38.942992+00:00, sha ba2dd7c26d06)
  - site_page: https://quic-go.net/docs/quic/streams (fetched 2026-08-29T08:13:38.957588+00:00, sha e537528445a8)
  - site_page: https://quic-go.net/docs/quic/flowcontrol (fetched 2026-08-29T08:13:38.959508+00:00, sha cba5efff7dab)
  - site_page: https://quic-go.net/docs/quic (fetched 2026-08-29T08:13:38.948634+00:00, sha a9de077c7c62)
  - site_page: https://quic-go.net/docs/quic/transport (fetched 2026-08-29T08:13:38.950252+00:00, sha 5b217e5750d9)
  - site_page: https://quic-go.net/docs/quic/server (fetched 2026-08-29T08:13:38.952315+00:00, sha c6dbd247f4ae)
  - site_page: https://quic-go.net/docs/quic/client (fetched 2026-08-29T08:13:38.954094+00:00, sha e1e12e28eb4c)
  - site_page: https://quic-go.net/docs/quic/connection (fetched 2026-08-29T08:13:38.955863+00:00, sha 39b414019955)
  - site_page: https://quic-go.net/ (fetched 2026-08-29T08:13:38.946817+00:00, sha ba2dd7c26d06)
- Data as of 2026-08-30T08:39:29.467469+00:00.
