Skip to content

SYSTEM Cited by 1 source

quic-go

What it is

quic-go is a Go implementation of the QUIC transport protocol + HTTP/3. Used client-side in PlanetScale's experimental HTTP/3 Go database driver benchmark (Source: ).

Why it shows up on this wiki

Canonical wiki datum on the implementation-maturity dependency of HTTP/3's latency wins. Robenolt's benchmark finds HTTP/3 via quic-go is slower than HTTP/2 via Go's stdlib on low-latency networks with large payloads — and attributes this to quic-go's relative immaturity, not the QUIC protocol itself: "I haven't dug into this, but my hypothesis is that this is a performance limitation in the underlying quic-go implementation due to it being a bit more immature and less battle-tested. At these larger payloads, we might be beginning to stress the underlying QUIC implementation as well as the underlying mysqld and hardware."

Load-bearing wiki datum: HTTP/3's benefit floor depends on the specific QUIC library used. Mature TCP-based HTTP/2 libraries (e.g. Go's stdlib) have decades of tuning and production hardening; early QUIC libraries are still catching up on buffer management, kernel-UDP-socket handling, and large-payload path optimisation.

Architectural properties

  • UDP-based reliable transport — runs over net.ListenUDP rather than net.ListenTCP; requires no kernel TCP tuning but exposes Linux UDP socket buffer sizing and kernel GRO/GSO offload as tuning surfaces.
  • TLS 1.3 integrated — QUIC requires TLS 1.3; quic-go supports 0-RTT handshake resumption.
  • HTTP/3 implementation bundled — the library provides both the QUIC transport and an HTTP/3 client/server built on it.
  • Experimental at the time of the 2023-01-04 PlanetScale post — the library has since been widely adopted but was still characterised as "experimental" in the source.

Stub

Minimum viable page. Expand with wiki-pages' first-hand benchmarks / tuning / incident retrospectives as they're ingested.

Seen in

  • — client-side Go QUIC library in the experimental HTTP/3 benchmark driver; identified as the probable cause of HTTP/3 being measurably slower than HTTP/2 on low-latency large-payload workloads.
  • sources/2026-03-31-slack-from-custom-to-open-scalable-network-probing-and-http3-readiness — Slack intern Sebastian Feliciano picked quic-go as the foundation for the new http3 module in Prometheus Blackbox Exporter (upstream contribution); cited for "wide adoption across other open source technologies, as well as the first-class support it provides in creating http clients in go." Canonical second wiki instance — production-adjacent monitoring tooling, distinct from the PlanetScale client-side driver benchmark instance. The integration snippet: http3.Transport{TLSClientConfig: tlsConfig, QUICConfig: &quic.Config{}} wrapped in an http.Client — shows how a QUIC library slots into existing Go HTTP abstractions.
Last updated · 542 distilled / 1,571 read