README.rst 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. nghttp3
  2. =======
  3. nghttp3 is an implementation of `RFC 9114
  4. <https://datatracker.ietf.org/doc/html/rfc9114>`_ HTTP/3 mapping over
  5. QUIC and `RFC 9204 <https://datatracker.ietf.org/doc/html/rfc9204>`_
  6. QPACK in C.
  7. It does not depend on any particular QUIC transport implementation.
  8. Documentation
  9. -------------
  10. `Online documentation <https://nghttp2.org/nghttp3/>`_ is available.
  11. Build from git
  12. ---------------
  13. .. code-block:: shell
  14. $ git clone https://github.com/ngtcp2/nghttp3
  15. $ cd nghttp3
  16. $ git submodule update --init
  17. $ autoreconf -i
  18. $ ./configure
  19. $ make -j$(nproc) check
  20. HTTP/3
  21. ------
  22. This library implements `RFC 9114
  23. <https://datatracker.ietf.org/doc/html/rfc9114>`_ HTTP/3. It does not
  24. support server push.
  25. The following extensions have been implemented:
  26. - `Extensible Prioritization Scheme for HTTP
  27. <https://datatracker.ietf.org/doc/html/rfc9218>`_
  28. - `Bootstrapping WebSockets with HTTP/3
  29. <https://datatracker.ietf.org/doc/html/rfc9220>`_
  30. It can also send and receive `SETTINGS_H3_DATAGRAM` from `HTTP
  31. Datagrams and the Capsule Protocol
  32. <https://datatracker.ietf.org/doc/html/rfc9297>`_.
  33. QPACK
  34. -----
  35. This library implements `RFC 9204
  36. <https://datatracker.ietf.org/doc/html/rfc9204>`_ QPACK. It supports
  37. dynamic table.
  38. Optimizations
  39. -------------
  40. This library optionally uses AVX2, if available, to optimize its
  41. performance. To compile with AVX2, add ``-mavx2`` to CFLAGS. Note
  42. that by default, CFLAGS is set to ``-g -O2``. When specifying CFLAGS,
  43. include them as well (e.g., ``-g -O2 -mavx2``).
  44. Examples
  45. --------
  46. - client: https://github.com/ngtcp2/ngtcp2/blob/main/examples/client.cc
  47. - server: https://github.com/ngtcp2/ngtcp2/blob/main/examples/server.cc
  48. - curl: https://github.com/curl/curl/blob/master/lib/vquic/curl_ngtcp2.c
  49. License
  50. -------
  51. The MIT License
  52. Copyright (c) 2019 nghttp3 contributors