Node.js 26.2.0 (Current)
Antoine du Hamel
2026-05-20, Version 26.2.0 (Current), @aduh95
Notable Changes
- [
189d43a193] - doc: markstream.composestable (Matteo Collina) #62562 - [
f858c6140e] - (SEMVER-MINOR) fs: addTemporal.Instantsupport toStatsandBigIntStats(Livia Medeiros) #60789 - [
0cbb3895df] - (SEMVER-MINOR) http: addwriteInformationto send arbitrary 1xx status codes (Tim Perry) #63155
Commits
- [
9a394bab84] - benchmark: respect stream/iter broadcast backpressure (Trivikram Kamat) #63314 - [
ad98b4620b] - crypto: align verifyOneShot accepted types (Anshika Jain) #63280 - [
ba0736a847] - crypto: wire ML-DSA and ML-KEM for use when using BoringSSL (Filip Skokan) #63255 - [
5573a6a4a8] - crypto: wire ChaCha20-Poly1305 in Web Cryptography when using BoringSSL (Filip Skokan) #63255 - [
7dc563b8d6] - crypto: wire AES-KW in Web Cryptography when using BoringSSL (Filip Skokan) #63255 - [
b55e2b1f4d] - crypto: improve system certificate enumeration logic on macOS (Robo) #62576 - [
fd509a755a] - crypto: harden CryptoKey algorithm slots (Filip Skokan) #63111 - [
8657df39e7] - crypto: harden KeyObject internal slots (Filip Skokan) #63111 - [
729274e046] - crypto: reject invalid raw key imports (Filip Skokan) #63134 - [
8fc9cb9c01] - crypto: improve accuracy of SubtleCrypto.supports (Filip Skokan) #63104 - [
288065cb3f] - crypto: optimize normalizeAlgorithm dispatch hot path (Filip Skokan) #62756 - [
ecf3797d09] - debugger: disambiguate probe location binding (Joyee Cheung) #63286 - [
bdc57135fd] - debugger: add --help tonode inspectand improve docs (Joyee Cheung) #63201 - [
2a6e6058e9] - deps: update undici to 8.3.0 (Node.js GitHub Bot) #63377 - [
327b927271] - deps: update corepack to 0.35.0 (Node.js GitHub Bot) #63375 - [
5828fadf52] - deps: update sqlite to 3.53.1 (Node.js GitHub Bot) #63217 - [
fe127a999b] - deps: update simdjson to 4.6.4 (Node.js GitHub Bot) #62811 - [
a34c4ea159] - deps: V8: cherry-pick 435a2cdf664c (Matthias Liedtke) #63136 - [
ad91efcc43] - deps: cherry-pick libuv/libuv@a43e543 (Ali Hassan) #63222 - [
5ea6c3ee7e] - deps: add missing static linking targets for libffi (Paolo Insogna) #63168 - [
c1f6ba22b4] - deps: update ngtcp2 to 1.22.1 (Node.js GitHub Bot) #62812 - [
7b8767ef76] - doc: remove unsupported template type from v8.md (René) #63410 - [
b2ec1880b1] - doc: fix promise nomenclature instream_iter.md(Antoine du Hamel) #63406 - [
cf6cbbd39d] - doc: fix article usage before vowel-sound acronyms (joao-oliveira-softtor) #62696 - [
da05065d98] - doc: remove the bi-monthly contributor spotlight section (Claudio Wunder) #62734 - [
c31f320fba] - doc: update http2'spushandtrailersevents withrawHeadersparam (YuSheng Chen) #63259 - [
f0d008439b] - doc: add Rust toolchain manual installation instructions Windows (Mike McCready) #63367 - [
68b1220fbd] - doc: remove inactive members from Triagers list (Antoine du Hamel) #63329 - [
189d43a193] - doc: mark stream.compose stable (Matteo Collina) #62562 - [
c4fb894039] - doc: fix CHANGELOG (Richard Lau) #63292 - [
9f319a77e4] - doc: reference correct function in Module docs (Robin Malfait) #63247 - [
2c13acc88e] - doc: replace Visual Studio 2022 Evergreen version reference with 17.14 (Mike McCready) #63211 - [
7e42c336c9] - doc: recommend explicitly Tier 1 or 2 for production applications (Mike McCready) #63187 - [
d99e0bb6d5] - doc: document Temporal configure flags in BUILDING.md (ChrisJr404) #63248 - [
c0ea77b305] - doc: run license-builder (github-actions[bot]) #63232 - [
8265aba0f4] - doc: add large pull requests contributing guide (Matteo Collina) #62829 - [
be241bacc8] - doc: remove unnecessary<!-- eslint-magic comments (Antoine du Hamel) #63200 - [
e0b1f092c3] - doc: fix inconsistencies in CJS code snippets (Antoine du Hamel) #63199 - [
a3feb15871] - doc: clarify SEA platform support excludes darwin-x64 (MJSHANG) #63181 - [
cafd7667fc] - doc: improve quic documentation (James M Snell) #63157 - [
3c784edb6f] - doc: update release steps when post-release fails (Rafael Gonzaga) #63131 - [
9de954e9be] - doc: fix deprecation list in 26.0.0 changelog (Antoine du Hamel) #63147 - [
20c553e456] - doc: add Hmac.digest() documentation-only deprecation (DEP0206) (Anshika Jain) #63121 - [
3494eae2c8] - doc: document the latest-vX.x schema (Marco Ippolito) #63033 - [
c02413d29d] - doc: remove list of versions inBUILDING.md(Antoine du Hamel) #63113 - [
53f9a902a1] - doc,sqlite: document entryPoint argument for loadExtension (Edy Silva) #63152 - [
f858c6140e] - (SEMVER-MINOR) fs: addTemporal.Instantsupport toStatsandBigIntStats(Livia Medeiros) #60789 - [
b2ba62ca0e] - fs: makeDateproperties onStatsenumerable (LiviaMedeiros) #63328 - [
0cbb3895df] - (SEMVER-MINOR) http: add writeInformation to send arbitrary 1xx status codes (Tim Perry) #63155 - [
f712e6856e] - http2: validate non-link headers in writeEarlyHints (Matteo Collina) #62017 - [
3acadae676] - lib: fix typo idenity => identity (Daijiro Wachi) #63112 - [
460329e886] - lib: fixes validator message (Daijiro Wachi) #62823 - [
9438c832b2] - lib: narrow ReadableStreamBYOBRequest.view return type to Uint8Array (RoomWithOutRoof) #63017 - [
c7d27c82c4] - lib: handle --permission-audit when propagating flags (Rafael Gonzaga) #63047 - [
9f19915276] - lib: optimize webidl conversion options (Filip Skokan) #62756 - [
771afd626a] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #63402 - [
67d094a554] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #63235 - [
9091398f3d] - meta: ignore AI assistants files (Matteo Collina) #62612 - [
96f19a16d0] - module: fix sync hook short-circuit in require() in imported CJS (Joyee Cheung) #62920 - [
45f3e3ef11] - node-api: support SharedArrayBuffer in napi_create_typedarray (Yilong Li) #62710 - [
d7afa617bb] - quic: send correct OpenSSL alert for ALPN mismatches (Tim Perry) #63193 - [
526313beb8] - quic: fixup quic stream variable chunk len (James M Snell) #63230 - [
1613c7fe70] - quic: support --allow-net permissions (James M Snell) #63184 - [
72ab7444a8] - quic: remove unused env_ variable in session_manager.h/cc (James M Snell) #63177 - [
2b55656778] - quic: remove unused binding variable in session.cc (James M Snell) #63177 - [
83f0d37400] - quic: ignore coverage for quic files (James M Snell) #63149 - [
7e6b77b14d] - quic: complete the internal implementation of QUIC (James M Snell) #62876 - [
71372418f1] - repl: fix dedup comparing normalized line against raw history (Daijiro Wachi) #62886 - [
20f40c2c25] - sqlite: keep source database alive during backup (Matteo Collina) #62673 - [
592f741bd0] - src: simplify OpenSSL feature gates (Filip Skokan) #63255 - [
520ab7ad40] - src: add BoringSSL EVP enumeration fallback (Filip Skokan) #63206 - [
12be49acbc] - src: support multiple versions in node.config.json (Marco Ippolito) #63033 - [
296f907585] - src: remove unused using declarations in node_task_queue (Mert Can Altin) #63144 - [
7703f11b3c] - src: skip JS callback for settled Promise.race losers (Felipe Coelho) #62336 - [
74ab710c3a] - src,sqlite: remove dead code (Edy Silva) #63204 - [
e49154f4c8] - stream: add sync iterable fast path to pipeTo (Trivikram Kamat) #63318 - [
537455e98d] - stream: fix merge handling for object-like sources (Trivikram Kamat) #63356 - [
e21b8a47f0] - stream: limit iter from sync iterable batches (Trivikram Kamat) #63324 - [
3bdb64dc67] - stream: cache minimum cursor count in broadcast (Trivikram Kamat) #63322 - [
81819add6b] - stream: remove unnecessary check (Antoine du Hamel) #63030 - [
22e3579d74] - stream: avoid retrying accepted pipeTo writes (Trivikram Kamat) #63297 - [
691915ea94] - stream: validate broadcast writer writev chunks (Trivikram Kamat) #63300 - [
253f5f4ca2] - stream: uncork fromWritable writev on chunk error (Trivikram Kamat) #63295 - [
aa6913cc4a] - stream: validate fromWritable() options before cache (Trivikram Kamat) #63278 - [
6c53ddb988] - stream: optimize single-slot push queue drain (Trivikram Kamat) #63274 - [
b568649f6f] - stream: preserve toReadableSync batch after backpressure (Trivikram Kamat) #63276 - [
cdcefd7e2f] - stream: cache minimum cursor count in share (Trivikram Kamat) #63262 - [
ba7000e4f7] - stream: minor stream/iter implementation edits (René) #63132 - [
c694999ab8] - test: disable Maglev in near-heap-limit worker test (Trivikram Kamat) #63398 - [
a6d6d51c1b] - test: deflake connection refused proxy tests (Trivikram Kamat) #63395 - [
31d89c4f59] - test: avoid repeated writes in watch helper (Trivikram Kamat) #63386 - [
6f3587c773] - test: deflake watch mode worker test (Trivikram Kamat) #63384 - [
a57aebaa73] - test: update tls/crypto behaviour expectations when using BoringSSL (Filip Skokan) #63161 - [
b871cff2db] - test: relax test-memory-usage arrayBuffers check (inoway46) #63244 - [
25189bcb95] - test: reduce flakiness ofdifferent-registry-per-thread(Antoine du Hamel) #63244 - [
5bdb1f8426] - test: fix flaky test-watch-mode-inspect timeout (Matteo Collina) #63361 - [
d57bd2bf59] - test: relax min assertion in test-performance-eventloopdelay (Marco) #63100 - [
014e1f00c1] - test: avoid flaky restart sync in debugger exceptions test (Yuya Inoue) #62055 - [
dd28ff8a80] - test: avoid initial-break wait in restart-message (inoway46) #62060 - [
e89a49a13a] - test: move FFI tests toNATIVE_SUITES(Antoine du Hamel) #63165 - [
51ef0258ba] - test: update WPT for wasm/jsapi to 288c467d35 (Node.js GitHub Bot) #63136 - [
c0175a9ba1] - test: use ERM to destroy sqlite database handles after tests (René) #63076 - [
83054e8aba] - test_runner: avoid hanging on incomplete v8 frames (Ali Hassan) #62704 - [
4f1426d361] - test_runner: fix hooks test context (Moshe Atlow) #63285 - [
6a4c4b7193] - test_runner: fix diagnostics channel context tracking (Moshe Atlow) #63283 - [
eba9c3481b] - test_runner: add tags option and tag-name filter (Chemi Atlow) #63221 - [
2ba124f23b] - tls: add unsupported renegotiation error (Filip Skokan) #63161 - [
7c5048495a] - tools: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) #63075 - [
6c574110a7] - tools: update gyp-next to 0.22.2 (Node.js GitHub Bot) #63374 - [
f14ed762b3] - tools: add boringssl to tools/nix/openssl-matrix.nix (Filip Skokan) #63206 - [
14d3924c48] - tools: fix test426 updater (Antoine du Hamel) #63271 - [
0d017ece8d] - tools: filter V8 scripts for build toolchain (Richard Lau) #63069 - [
3859a8700e] - tools: use different branch for tool updates on staging branches (Antoine du Hamel) #63110 - [
4a32ed82bd] - tools: prevent lib code from reading KeyObject and CryptoKey accessors (Filip Skokan) #63111
Windows 64-bit Installer: https://nodejs.org/dist/v26.2.0/node-v26.2.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v26.2.0/node-v26.2.0-arm64.msi
Windows 64-bit Binary: https://nodejs.org/dist/v26.2.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v26.2.0/win-arm64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v26.2.0/node-v26.2.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v26.2.0/node-v26.2.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v26.2.0/node-v26.2.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v26.2.0/node-v26.2.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v26.2.0/node-v26.2.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v26.2.0/node-v26.2.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v26.2.0/node-v26.2.0-aix-ppc64.tar.gz
ARMv8 64-bit Binary: https://nodejs.org/dist/v26.2.0/node-v26.2.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v26.2.0/node-v26.2.0.tar.gz
Other release files: https://nodejs.org/dist/v26.2.0/
Documentation: https://nodejs.org/docs/v26.2.0/api/
SHASUMS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
cef2e65897f97088b512f922896a56de3ec0614d020816ef0ecb76290e708b81 node-v26.2.0-aix-ppc64.tar.gz
922634a94fc0beb8a3feb448f55c600fb8eb6a0a598996a6536cb78e98cfc03c node-v26.2.0-arm64.msi
2d8575b6a749c0bc66cc6ecd22a952f7d9bbf3b0ea76fcb0ed3ce858018afff7 node-v26.2.0-darwin-arm64.tar.gz
6c2393ec9fd8a16264282bf30d6c09088695f5189915d8075d0166b23688f04a node-v26.2.0-darwin-arm64.tar.xz
26a5480d0dd952be86beae83e6636dacd7a3ffd17ef51d0b26bc9b260f2b42e9 node-v26.2.0-darwin-x64.tar.gz
50e3fb7cda816f0ab8929551516530669d1c0449a3f6a8a044be82a57cc642a4 node-v26.2.0-darwin-x64.tar.xz
05f779a0a5498712cd8f85cef69ef02072a45c12641ee616f2d9b89416a81a47 node-v26.2.0-headers.tar.gz
2b447554f72320568be9c06566d6a673ab97bffaf799a758a91cb5e81dc16e3c node-v26.2.0-headers.tar.xz
bf52461d25017479cdc549642c4e7a2303ac5c5395d7c3d026d5d8b3fa283c05 node-v26.2.0-linux-arm64.tar.gz
2f06be7e5435728abd890fe53b69965773919b705d8cfedd856c8f604c1e3726 node-v26.2.0-linux-arm64.tar.xz
4b52429b35a049a0cf574360cd1b11cbc9f03201d13876f26897c9863d25ec49 node-v26.2.0-linux-ppc64le.tar.gz
c4bff589e7a1cdf344e4f37f1ee69451eeb747284dd94fc3ae6fdd3813caa05f node-v26.2.0-linux-ppc64le.tar.xz
9d064914e38a5b3e6a3074647407198116f7bc724fce5a9600cece84ac7da671 node-v26.2.0-linux-s390x.tar.gz
bc4cacb7cbc8079a04f78d99d15b1a409147ef0d81fec9f67e5528121df058c8 node-v26.2.0-linux-s390x.tar.xz
8e5b4b969bb2414aca2ff84d2b99608511aedca32bf8a8427e6187dbdd703bbe node-v26.2.0-linux-x64.tar.gz
9f786864128a11375e398b8dfacd4a5e995ec4b6a6c8b3b52ac9afbc95ea8158 node-v26.2.0-linux-x64.tar.xz
90226d28eadd3d94e33f585c5835631bdd52c05027df2b0ed00fd4068dccc375 node-v26.2.0-win-arm64.7z
131efa8bd858f8ad000a1a0436d8bb1320c638291c779a921fb20e5702a1cc0a node-v26.2.0-win-arm64.zip
c617934f4d9fca2df0eb77f6bf924dc44d70fd787da578131d17a6001709f76c node-v26.2.0-win-x64.7z
371071a4f7e2c8a5dd280730049c685911feecc59f50ebc488d675dc1087c69c node-v26.2.0-win-x64.zip
51be3a87789ecc7987c3d515ec805bf304955fe5f96167ef3001e5a428b3bf3e node-v26.2.0-x64.msi
2d8c59df289ba651523d89df2e00ace61655ed468cef68c9a1c262250952c1fd node-v26.2.0.pkg
37032a75a677f063dbe22f0cc72249a3a2faff2ce71056b63771d6967bd63384 node-v26.2.0.tar.gz
ea82be7db418f54b3ef153a02d44d4f6748466f4765ae80bc484f34af40df610 node-v26.2.0.tar.xz
2b2c5c0db8922fbadf6e4d97d5f0a0666ebaa2af9dc513d1f80b2634e69c9d6b win-arm64/node.exe
376eb35054756d8493adc1f26495fba0b7bda7365cdb7c132130044a622d6c31 win-arm64/node.lib
9410ec0655634890df572c2d22807a40cf44faae0d20f7f9ca650b1f4ce19aa2 win-arm64/node_pdb.7z
058fbfa4a8fc95db58bb02eb9e91cbd92bb34c8dcc67628b8c6110f20d3a8a5f win-arm64/node_pdb.zip
96f768b95e8e9d443f5eead1cb2d199744923320bb8240d2c3129362e7ae2a5d win-x64/node.exe
9c236a87f9c50a26099d74f35883c28c6b279585ccc5849aa640ff23de7be9b8 win-x64/node.lib
42da34eb8cdf18eab84610a71fd86d05921ac8d7e7927895e6442d2238fd7c92 win-x64/node_pdb.7z
aaf9c384825145c6bb8fe8a1f9e644350d019b79cf879181011e4e0c78f23e40 win-x64/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
iHUEARYIAB0WIQRb6KP2yKXAHRBsCtggsaOQsWjTVgUCag2w1AAKCRAgsaOQsWjT
VmcSAP9blRmG8QqpI9xpuySF9de5BQL4YHKC7WxSkrBvR7GhrgEA6OLocb8H6vNd
vQVfJRgF10JESE7UDBYuL7WePTZWCg4=
=ByRS
-----END PGP SIGNATURE-----