https://github.com/quic-go/qpack
a (minimal) QPACK (RFC 9204) implementation in Go
https://github.com/quic-go/qpack
http3 qpack quic
Last synced: about 1 month ago
JSON representation
a (minimal) QPACK (RFC 9204) implementation in Go
- Host: GitHub
- URL: https://github.com/quic-go/qpack
- Owner: quic-go
- License: mit
- Created: 2019-03-01T02:39:43.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-18T16:38:13.000Z (7 months ago)
- Last Synced: 2025-04-08T16:04:01.924Z (2 months ago)
- Topics: http3, qpack, quic
- Language: Go
- Homepage:
- Size: 125 KB
- Stars: 35
- Watchers: 2
- Forks: 7
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# QPACK
[](https://pkg.go.dev/github.com/quic-go/qpack)
[](https://codecov.io/gh/quic-go/qpack)
[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:quic-go)This is a minimal QPACK ([RFC 9204](https://datatracker.ietf.org/doc/html/rfc9204)) implementation in Go. It is minimal in the sense that it doesn't use the dynamic table at all, but just the static table and (Huffman encoded) string literals. Wherever possible, it reuses code from the [HPACK implementation in the Go standard library](https://github.com/golang/net/tree/master/http2/hpack).
It is interoperable with other QPACK implementations (both encoders and decoders), however it won't achieve a high compression efficiency. If you're interested in dynamic table support, please comment on [the issue](https://github.com/quic-go/qpack/issues/33).
## Running the Interop Tests
Install the [QPACK interop files](https://github.com/qpackers/qifs/) by running
```bash
git submodule update --init --recursive
```Then run the tests:
```bash
go test -v ./integrationtests/interop/
```