HTTP/3 library written in C
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.
nghttp3 requires a C11 compiler to build. The modern compilers such as clang >= 19, gcc >= 15, and MSVC 2022 (1944) are known to work.
.. code-block:: shell
$ 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:
Extensible Prioritization Scheme for HTTP _Bootstrapping WebSockets with HTTP/3 _The ORIGIN Extension in HTTP/3 _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).
The MIT License
Copyright (c) 2019 nghttp3 contributors
No open issues yet, or sync has not completed.