diff options
author | robot-contrib <robot-contrib@yandex-team.com> | 2024-02-05 10:21:46 +0300 |
---|---|---|
committer | robot-contrib <robot-contrib@yandex-team.com> | 2024-02-05 10:43:47 +0300 |
commit | 772991a84caf0d42202e61c963ca4ffac914dd66 (patch) | |
tree | d2c7807dfe002811e19a0c78353d4ab1444f6ac5 /contrib/libs/nghttp2/README.rst | |
parent | 90c89e699ce3780528788a4539ff3ae2284e8614 (diff) | |
download | ydb-772991a84caf0d42202e61c963ca4ffac914dd66.tar.gz |
Update contrib/libs/nghttp2 to 1.59.0
Diffstat (limited to 'contrib/libs/nghttp2/README.rst')
-rw-r--r-- | contrib/libs/nghttp2/README.rst | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/contrib/libs/nghttp2/README.rst b/contrib/libs/nghttp2/README.rst index 1934341bff..2af1bcca5d 100644 --- a/contrib/libs/nghttp2/README.rst +++ b/contrib/libs/nghttp2/README.rst @@ -29,10 +29,10 @@ Public Test Server The following endpoints are available to try out our nghttp2 implementation. -* https://nghttp2.org/ (TLS + ALPN/NPN and HTTP/3) +* https://nghttp2.org/ (TLS + ALPN and HTTP/3) This endpoint supports ``h2``, ``h2-16``, ``h2-14``, and - ``http/1.1`` via ALPN/NPN and requires TLSv1.2 for HTTP/2 + ``http/1.1`` via ALPN and requires TLSv1.2 for HTTP/2 connection. It also supports HTTP/3. @@ -66,15 +66,12 @@ To build and run the application programs (``nghttp``, ``nghttpd``, ``nghttpx`` and ``h2load``) in the ``src`` directory, the following packages are required: -* OpenSSL >= 1.0.1 +* OpenSSL >= 1.1.1; or LibreSSL >= 3.8.1; or aws-lc >= 1.19.0; or + BoringSSL * libev >= 4.11 * zlib >= 1.2.3 * libc-ares >= 1.7.5 -ALPN support requires OpenSSL >= 1.0.2 (released 22 January 2015). -LibreSSL >= 2.2.0 can be used instead of OpenSSL, but OpenSSL has more -features than LibreSSL at the time of this writing. - To enable ``-a`` option (getting linked assets from the downloaded resource) in ``nghttp``, the following package is required: @@ -106,7 +103,7 @@ To mitigate heap fragmentation in long running server programs To enable mruby support for nghttpx, `mruby <https://github.com/mruby/mruby>`_ is required. We need to build mruby with C++ ABI explicitly turned on, and probably need other -mrgems, mruby is manged by git submodule under third-party/mruby +mrgems, mruby is managed by git submodule under third-party/mruby directory. Currently, mruby support for nghttpx is disabled by default. To enable mruby support, use ``--with-mruby`` configure option. Note that at the time of this writing, libmruby-dev and mruby @@ -118,20 +115,21 @@ required: * bison nghttpx supports `neverbleed <https://github.com/h2o/neverbleed>`_, -privilege separation engine for OpenSSL / LibreSSL. In short, it -minimizes the risk of private key leakage when serious bug like -Heartbleed is exploited. The neverbleed is disabled by default. To -enable it, use ``--with-neverbleed`` configure option. +privilege separation engine for OpenSSL. In short, it minimizes the +risk of private key leakage when serious bug like Heartbleed is +exploited. The neverbleed is disabled by default. To enable it, use +``--with-neverbleed`` configure option. To enable the experimental HTTP/3 support for h2load and nghttpx, the following libraries are required: * `OpenSSL with QUIC support <https://github.com/quictls/openssl/tree/OpenSSL_1_1_1w+quic>`_; or + LibreSSL (does not support 0RTT); or aws-lc; or `BoringSSL <https://boringssl.googlesource.com/boringssl/>`_ (commit - 6ca49385b168f47a50e7172d82a590b218f55e4d) + f42be90d665b6a376177648ccbb76fbbd6497c13) * `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ >= 1.0.0 -* `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ >= 1.0.0 +* `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ >= 1.1.0 Use ``--enable-http3`` configure option to enable HTTP/3 feature for h2load and nghttpx. @@ -146,7 +144,7 @@ Use ``--with-libbpf`` configure option to build eBPF program. libelf-dev is needed to build libbpf. For Ubuntu 20.04, you can build libbpf from `the source code -<https://github.com/libbpf/libbpf/releases/tag/v1.2.2>`_. nghttpx +<https://github.com/libbpf/libbpf/releases/tag/v1.3.0>`_. nghttpx requires eBPF program for reloading its configuration and hot swapping its executable. @@ -354,7 +352,7 @@ Build nghttp3: .. code-block:: text - $ git clone --depth 1 -b v1.0.0 https://github.com/ngtcp2/nghttp3 + $ git clone --depth 1 -b v1.1.0 https://github.com/ngtcp2/nghttp3 $ cd nghttp3 $ autoreconf -i $ ./configure --prefix=$PWD/build --enable-lib-only @@ -366,7 +364,7 @@ Build ngtcp2: .. code-block:: text - $ git clone --depth 1 -b v1.0.1 https://github.com/ngtcp2/ngtcp2 + $ git clone --depth 1 -b v1.2.0 https://github.com/ngtcp2/ngtcp2 $ cd ngtcp2 $ autoreconf -i $ ./configure --prefix=$PWD/build --enable-lib-only \ @@ -380,7 +378,7 @@ from source: .. code-block:: text - $ git clone --depth 1 -b v1.2.2 https://github.com/libbpf/libbpf + $ git clone --depth 1 -b v1.3.0 https://github.com/libbpf/libbpf $ cd libbpf $ PREFIX=$PWD/build make -C src install $ cd .. @@ -539,7 +537,7 @@ nghttp - client +++++++++++++++ ``nghttp`` is a HTTP/2 client. It can connect to the HTTP/2 server -with prior knowledge, HTTP Upgrade and NPN/ALPN TLS extension. +with prior knowledge, HTTP Upgrade and ALPN TLS extension. It has verbose output mode for framing information. Here is sample output from ``nghttp`` client: @@ -765,8 +763,8 @@ nghttpd - server By default, it uses SSL/TLS connection. Use ``--no-tls`` option to disable it. -``nghttpd`` only accepts HTTP/2 connections via NPN/ALPN or direct -HTTP/2 connections. No HTTP Upgrade is supported. +``nghttpd`` only accepts HTTP/2 connections via ALPN or direct HTTP/2 +connections. No HTTP Upgrade is supported. The ``-p`` option allows users to configure server push. @@ -847,7 +845,7 @@ to know how to migrate from earlier releases. ``nghttpx`` implements `important performance-oriented features <https://istlsfastyet.com/#server-performance>`_ in TLS, such as session IDs, session tickets (with automatic key rotation), OCSP -stapling, dynamic record sizing, ALPN/NPN, forward secrecy and HTTP/2. +stapling, dynamic record sizing, ALPN, forward secrecy and HTTP/2. ``nghttpx`` also offers the functionality to share session cache and ticket keys among multiple ``nghttpx`` instances via memcached. @@ -974,12 +972,15 @@ threads to avoid saturating a single core on client side. servers. If the experimental HTTP/3 is enabled, h2load can send requests to -HTTP/3 server. To do this, specify ``h3`` to ``--npn-list`` option +HTTP/3 server. To do this, specify ``h3`` to ``--alpn-list`` option like so: .. code-block:: text - $ h2load --npn-list h3 https://127.0.0.1:4433 + $ h2load --alpn-list h3 https://127.0.0.1:4433 + +For nghttp2 v1.58 or earlier, use ``--npn-list`` instead of +``--alpn-list``. HPACK tools ----------- |