nghttp3 is an implementation of RFC 9114 HTTP/3 mapping over QUIC and RFC 9204 QPACK in C.
It does not depend on any particular QUIC transport implementation.
Online documentation is available.
$ git clone https://github.com/ngtcp2/nghttp3
$ cd nghttp3
$ git submodule update --init
$ autoreconf -i
$ ./configure
$ make -j$(nproc) check
This library implements RFC 9114 HTTP/3. It does not support server push.
The following extensions have been implemented:
It can also send and receive SETTINGS_H3_DATAGRAM from HTTP Datagrams and the Capsule Protocol.
This library implements RFC 9204 QPACK. It supports dynamic table.
This library optionally uses AVX2, if available, to optimize its
performance. To compile with AVX2, add -mavx2
to CFLAGS. Note
that by default, CFLAGS is set to -g -O2
. When specifying CFLAGS,
include them as well (e.g., -g -O2 -mavx2
).
- client: https://github.com/ngtcp2/ngtcp2/blob/main/examples/client.cc
- server: https://github.com/ngtcp2/ngtcp2/blob/main/examples/server.cc
- curl: https://github.com/curl/curl/blob/master/lib/vquic/curl_ngtcp2.c
The MIT License
Copyright (c) 2019 nghttp3 contributors