%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
# ngtcp2 and nghttp3 The ngtcp2 and nghttp3 dependencies provide the core functionality for QUIC and HTTP/3. The sources are pulled from: * ngtcp2: https://github.com/ngtcp2/ngtcp2 * nghttp3: https://github.com/ngtcp2/nghttp3 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: ```sh $ 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/ ``` ### Updating nghttp3 To update nghttp3, replace `v0.7.0` with the desired git tag: ```sh $ 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/ ```