aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/nghttp2/README.rst
diff options
context:
space:
mode:
authorrobot-contrib <robot-contrib@yandex-team.com>2024-02-05 10:21:46 +0300
committerrobot-contrib <robot-contrib@yandex-team.com>2024-02-05 10:43:47 +0300
commit772991a84caf0d42202e61c963ca4ffac914dd66 (patch)
treed2c7807dfe002811e19a0c78353d4ab1444f6ac5 /contrib/libs/nghttp2/README.rst
parent90c89e699ce3780528788a4539ff3ae2284e8614 (diff)
downloadydb-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.rst49
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
-----------