node/deps/ngtcp2
James M Snell 99c80e3a45 quic: update the guard to check openssl version
Since we need to be able to use the openssl adapter provided
by the ngtcp2 library, and because that adapter does not include
any compile guards to ensure that OpenSSL 3.5 is being used and
that the APIs are actually available, we need to add a compile
time check for the openssl version in order to conditionally
include the adapter to avoid build errors when using a shared
openssl library that is not OpenSSL 3.5.

Signed-off-by: James M Snell <jasnell@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/59249
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2025-08-03 13:48:31 -07:00
..
nghttp3/lib deps: update nghttp3 to 1.11.0 2025-08-03 13:48:30 -07:00
ngtcp2 deps: update ngtcp2 to 1.14.0 2025-08-03 13:48:29 -07:00
.gitignore deps: add nghttp3/**/.deps to .gitignore 2024-01-08 08:23:08 +00:00
BUILD.gn build: add GN build files 2023-11-11 09:51:05 +00:00
config.h deps: add ngtcp2 and nghttp3 2021-03-19 08:18:37 -07:00
LICENSE_nghttp3 deps: add ngtcp2 and nghttp3 2021-03-19 08:18:37 -07:00
LICENSE_ngtcp2 deps: add ngtcp2 and nghttp3 2021-03-19 08:18:37 -07:00
ngtcp2.gyp quic: update the guard to check openssl version 2025-08-03 13:48:31 -07:00
README.md deps: update ngtcp2 to 1.14.0 2025-08-03 13:48:29 -07:00
unofficial.gni build: fix GN build for ngtcp2 2024-12-22 21:56:54 +10:30

ngtcp2 and nghttp3

The ngtcp2 and nghttp3 dependencies provide the core functionality for QUIC and HTTP/3.

The sources are pulled from:

In both the ngtcp2 and nghttp3 git repos, the active development occurs in the default branch (currently named main in each). Tagged versions do not always point to the default branch.

We only use a subset of the sources for each.

Updating

The nghttp3 library depends on ngtcp2. Both should always be updated together. From ngtcp2 we only want the contents of the lib and crypto directories; from nghttp3 we only want the contents of the lib directory.

After updating either dependency, check if any source files or include directories have been added or removed and update ngtcp2.gyp accordingly.

Updating ngtcp2

To update ngtcp2, replace v0.8.1 with the desired git tag:

$ git clone --depth=1 --branch=v0.8.1 https://github.com/ngtcp2/ngtcp2
$ cd ngtcp2
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only
$ cp -R lib/* ../node/deps/ngtcp2/ngtcp2/lib/
$ cp -R crypto/* ../node/deps/ngtcp2/ngtcp2/crypto/

Be sure to also update the ngtcp2.gyp file to reflect any changes in the source files or include directories.

Updating nghttp3

To update nghttp3, replace v0.7.0 with the desired git tag:

$ git clone --depth=1 --branch=v0.7.0 https://github.com/ngtcp2/nghttp3
$ cd nghttp3
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only
$ cp -R lib/* ../node/deps/ngtcp2/nghttp3/lib/

Be sure to also update the ngtcp2.gyp file to reflect any changes in the source files or include directories.