• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ngtcp2 and nghttp3
2
3The ngtcp2 and nghttp3 dependencies provide the core functionality for
4QUIC and HTTP/3.
5
6The sources are pulled from:
7
8* ngtcp2: https://github.com/ngtcp2/ngtcp2
9* nghttp3: https://github.com/ngtcp2/nghttp3
10
11In both the `ngtcp2` and `nghttp3` git repos, the active development occurs
12in the default branch (currently named `main` in each). Tagged versions do not
13always point to the default branch.
14
15We only use a subset of the sources for each.
16
17## Updating
18
19The `nghttp3` library depends on `ngtcp2`. Both should always be updated
20together. From `ngtcp2` we only want the contents of the `lib` and `crypto`
21directories; from `nghttp3` we only want the contents of the `lib` directory.
22
23After updating either dependency, check if any source files or include
24directories have been added or removed and update `ngtcp2.gyp` accordingly.
25
26### Updating ngtcp2
27
28To update ngtcp2, replace `v0.8.1` with the desired git tag:
29
30```sh
31$ git clone --depth=1 --branch=v0.8.1 https://github.com/ngtcp2/ngtcp2
32$ cd ngtcp2
33$ autoreconf -i
34$ ./configure --prefix=$PWD/build --enable-lib-only
35$ cp -R lib/* ../node/deps/ngtcp2/ngtcp2/lib/
36$ cp -R crypto/* ../node/deps/ngtcp2/ngtcp2/crypto/
37```
38
39### Updating nghttp3
40
41To update nghttp3, replace `v0.7.0` with the desired git tag:
42
43```sh
44$ git clone --depth=1 --branch=v0.7.0 https://github.com/ngtcp2/nghttp3
45$ cd nghttp3
46$ autoreconf -i
47$ ./configure --prefix=$PWD/build --enable-lib-only
48$ cp -R lib/* ../node/deps/ngtcp2/nghttp3/lib/
49```
50