Node.js v24.8.0 (Current)

Michaël Zasso

2025-09-10, Version 24.8.0 (Current), @targos

Notable Changes

HTTP/2 Network Inspection Support in Node.js

Node.js now supports inspection of HTTP/2 network calls in Chrome DevTools for Node.js.

Usage

Write a test.js script that makes HTTP/2 requests.

const http2 = require('node:http2');

const client = http2.connect('https://nghttp2.org');

const req = client.request([':path', '/', ':method', 'GET']);

Run it with these options:

node --inspect-wait --experimental-network-inspection test.js

Open about:inspect on Google Chrome and click on Open dedicated DevTools for Node. The Network tab will let you track your HTTP/2 calls.

Contributed by Darshan Sen in #59611.

Other Notable Changes

  • [7a8e2c251d] - (SEMVER-MINOR) crypto: support Ed448 and ML-DSA context parameter in node:crypto (Filip Skokan) #59570
  • [4b631be0b0] - (SEMVER-MINOR) crypto: support Ed448 and ML-DSA context parameter in Web Cryptography (Filip Skokan) #59570
  • [3e4b1e732c] - (SEMVER-MINOR) crypto: add KMAC Web Cryptography algorithms (Filip Skokan) #59647
  • [b1d28785b2] - (SEMVER-MINOR) crypto: add Argon2 Web Cryptography algorithms (Filip Skokan) #59544
  • [430691d1af] - (SEMVER-MINOR) crypto: support SLH-DSA KeyObject, sign, and verify (Filip Skokan) #59537
  • [d6d05ba397] - (SEMVER-MINOR) worker: add cpu profile APIs for worker (theanarkh) #59428

Commits

  • [d913872369] - assert: cap input size in myersDiff to avoid Int32Array overflow (Haram Jeong) #59578
  • [7bbbcf6666] - benchmark: sqlite prevent create both tables on prepare selects (Bruno Rodrigues) #59709
  • [44d7b92271] - benchmark: calibrate config array-vs-concat (Rafael Gonzaga) #59587
  • [7f347fc551] - build: fix getting OpenSSL version on Windows (Michaël Zasso) #59609
  • [4a317150d5] - build: fix 'implicit-function-declaration' on OpenHarmony platform (hqzing) #59547
  • [bda32af587] - build: use windows-2025 runner (Michaël Zasso) #59673
  • [a4a8ed8f6e] - build: compile bundled uvwasi conditionally (Carlo Cabrera) #59622
  • [d944a87761] - crypto: refactor subtle methods to use synchronous import (Filip Skokan) #59771
  • [7a8e2c251d] - (SEMVER-MINOR) crypto: support Ed448 and ML-DSA context parameter in node:crypto (Filip Skokan) #59570
  • [4b631be0b0] - (SEMVER-MINOR) crypto: support Ed448 and ML-DSA context parameter in Web Cryptography (Filip Skokan) #59570
  • [3e4b1e732c] - (SEMVER-MINOR) crypto: add KMAC Web Cryptography algorithms (Filip Skokan) #59647
  • [b1d28785b2] - (SEMVER-MINOR) crypto: add Argon2 Web Cryptography algorithms (Filip Skokan) #59544
  • [430691d1af] - (SEMVER-MINOR) crypto: support SLH-DSA KeyObject, sign, and verify (Filip Skokan) #59537
  • [0d1e53d935] - deps: update uvwasi to 0.0.23 (Node.js GitHub Bot) #59791
  • [68732cf426] - deps: update histogram to 0.11.9 (Node.js GitHub Bot) #59689
  • [f12c1ad961] - deps: update googletest to eb2d85e (Node.js GitHub Bot) #59335
  • [45af6966ae] - deps: upgrade npm to 11.6.0 (npm team) #59750
  • [57617244a4] - deps: V8: cherry-pick 6b1b9bca2a8 (Xiao-Tao) #59283
  • [2e6225a747] - deps: update amaro to 1.1.2 (Node.js GitHub Bot) #59616
  • [1f7f6dfae6] - diagnostics_channel: revoke DEP0163 (René) #59758
  • [8671a6cdb3] - doc: stabilize --disable-sigusr1 (Rafael Gonzaga) #59707
  • [583b1b255d] - doc: update OpenSSL default security level to 2 (Jeetu Suthar) #59723
  • [9b5eb6eb50] - doc: fix missing links in the errors page (Nam Yooseong) #59427
  • [e7bf712c57] - doc: update "Type stripping in dependencies" section (Josh Kelley) #59652
  • [96db47f91e] - doc: add Miles Guicent as triager (Miles Guicent) #59562
  • [87f829bd0c] - doc: mark path.matchesGlob as stable (Aviv Keller) #59572
  • [062b2f705e] - doc: improve documentation for raw headers in HTTP/2 APIs (Tim Perry) #59633
  • [6ab9306370] - doc: update install_tools.bat free disk space (Stefan Stojanovic) #59579
  • [c8d6b60da6] - doc: fix quic session instance typo (jakecastelli) #59642
  • [61d0a2d1ba] - doc: fix filehandle.read typo (Ruy Adorno) #59635
  • [3276bfa0d0] - doc: update migration recomendations for util.is**() deprecations (Augustin Mauroy) #59269
  • [11de6c7ebb] - doc: fix missing link to the Error documentation in the http page (Alexander Makarenko) #59080
  • [f5b6829bba] - doc,crypto: add description to the KEM and supports() methods (Filip Skokan) #59644
  • [5bfdc7ee74] - doc,crypto: cleanup unlinked and self method references webcrypto.md (Filip Skokan) #59608
  • [010458d061] - esm: populate separate cache for require(esm) in imported CJS (Joyee Cheung) #59679
  • [dbe6e63baf] - esm: fix missed renaming in ModuleJob.runSync (Joyee Cheung) #59724
  • [8eb0d9d834] - fs: fix wrong order of file names in cpSync error message (Nicholas Paun) #59775
  • [e69be5611f] - fs: fix dereference: false on cpSync (Nicholas Paun) #59681
  • [2865d2ac20] - http: unbreak keepAliveTimeoutBuffer (Robert Nagy) #59784
  • [ade1175475] - http: use cached '1.1' http version string (Robert Nagy) #59717
  • [74a09482de] - inspector: undici as shared-library should pass tests (Aras Abbasi) #59837
  • [772f8f415a] - inspector: add http2 tracking support (Darshan Sen) #59611
  • [3d225572d7] - Revert "lib: optimize writable stream buffer clearing" (Yoo) #59743
  • [4fd213ce73] - lib: fix isReadable and isWritable return type value (Gabriel Quaresma) #59089
  • [39befddb87] - lib: prefer TypedArrayPrototype primordials (Filip Skokan) #59766
  • [0748160d2e] - lib: fix DOMException subclass support (Chengzhong Wu) #59680
  • [1a93df808c] - lib: revert to using default derived class constructors (René) #59650
  • [bb0755df37] - meta: bump codecov/codecov-action (dependabot[bot]) #59726
  • [45d148d9be] - meta: bump actions/download-artifact from 4.3.0 to 5.0.0 (dependabot[bot]) #59729
  • [01b66b122e] - meta: bump github/codeql-action from 3.29.2 to 3.30.0 (dependabot[bot]) #59728
  • [34f7ab5502] - meta: bump actions/cache from 4.2.3 to 4.2.4 (dependabot[bot]) #59727
  • [5806ea02af] - meta: bump actions/checkout from 4.2.2 to 5.0.0 (dependabot[bot]) #59725
  • [f667215583] - path: refactor path joining logic for clarity and performance (Lee Jiho) #59781
  • [0340fe92a6] - repl: do not cause side effects in tab completion (Anna Henningsen) #59774
  • [a414c1eb51] - repl: fix REPL completion under unary expressions (Kingsword) #59744
  • [c206f8dd87] - repl: add isValidParentheses check before wrap input (Xuguang Mei) #59607
  • [0bf9775ee2] - sea: implement sea.getAssetKeys() (Joyee Cheung) #59661
  • [bf26b478d8] - sea: allow using inspector command line flags with SEA (Joyee Cheung) #59568
  • [92128a8fe2] - src: use DictionaryTemplate for node_url_pattern (James M Snell) #59802
  • [bcb29fb84f] - src: correctly report memory changes to V8 (Yaksh Bariya) #59623
  • [44c24657d3] - src: fixup node_messaging error handling (James M Snell) #59792
  • [2cd6a3b7ec] - src: track async resources via pointers to stack-allocated handles (Anna Henningsen) #59704
  • [34d752586f] - src: fix build on NetBSD (Thomas Klausner) #59718
  • [15fa779ac5] - src: fix race on process exit and off thread CA loading (Chengzhong Wu) #59632
  • [15cbd3966a] - src: separate module.hasAsyncGraph and module.hasTopLevelAwait (Joyee Cheung) #59675
  • [88d1ca8990] - src: use non-deprecated Get/SetPrototype methods (Michaël Zasso) #59671
  • [56ac9a2d46] - src: migrate WriteOneByte to WriteOneByteV2 (Chengzhong Wu) #59634
  • [3d88aa9f2f] - src: remove duplicate code (theanarkh) #59649
  • [0718a70b2a] - src: add name for more threads (theanarkh) #59601
  • [0379a8b254] - src: remove JSONParser (Joyee Cheung) #59619
  • [90d0a1b2e9] - src,sqlite: refactor value conversion (Edy Silva) #59659
  • [5e025c7ca7] - stream: replace manual function validation with validateFunction (방진혁) #59529
  • [155a999bed] - test: skip tests failing when run under root (Livia Medeiros) #59779
  • [6313706c69] - test: update WPT for urlpattern to cff1ac1123 (Node.js GitHub Bot) #59602
  • [41245ad4c7] - test: skip more sea tests on Linux ppc64le (Richard Lau) #59755
  • [df63d37ec4] - test: fix internet/test-dns (Michaël Zasso) #59660
  • [1f6c335e82] - test: mark test-inspector-network-fetch as flaky again (Joyee Cheung) #59640
  • [1798683df1] - test: skip test-fs-cp* tests that are constantly failing on Windows (Joyee Cheung) #59637
  • [4c48ec09e5] - test: deflake test-http-keep-alive-empty-line (Luigi Pinca) #59595
  • [dcdb259e85] - test_runner: fix todo inheritance (Moshe Atlow) #59721
  • [24177973a2] - test_runner: set mock timer's interval undefined (hotpineapple) #59479
  • [83d11f8a7a] - tools: print appropriate output when test aborted (hotpineapple) #59794
  • [1eca2cc548] - tools: use sparse checkout in build-tarball.yml (Antoine du Hamel) #59788
  • [89fa1a929d] - tools: remove unused actions from build-tarball.yml (Antoine du Hamel) #59787
  • [794ca3511d] - tools: do not attempt to compress tgz archive (Antoine du Hamel) #59785
  • [377bdb9b7e] - tools: add v8windbg target (Chengzhong Wu) #59767
  • [6696d1d6c9] - tools: improve error handling in node_mksnapshot (James M Snell) #59437
  • [8dbd0f13e8] - tools: add sccache to test-internet workflow (Antoine du Hamel) #59720
  • [6523c2d7d9] - tools: update gyp-next to 0.20.4 (Node.js GitHub Bot) #59690
  • [19d633f40c] - tools: add script to make reviewing backport PRs easier (Antoine du Hamel) #59161
  • [15e547b3a4] - typings: add typing for 'uv' (방진혁) #59606
  • [ad5cfcc901] - typings: add missing properties in ConfigBinding (Lee Jiho) #59585
  • [70d2d6d479] - url: add err.input to ERR_INVALID_FILE_URL_PATH (Joyee Cheung) #59730
  • [e476e43c17] - util: fix numericSeparator with negative fractional numbers (sangwook) #59379
  • [b2e8f40d15] - util: remove unnecessary template strings (btea) #59201
  • [6f79450ea2] - util: remove outdated TODO comment (haramjeong) #59760
  • [32731432ef] - util: use getOptionValue('--no-deprecation') in deprecated() (haramjeong) #59760
  • [65e4e68c90] - util: hide duplicated stack frames when using util.inspect (Ruben Bridgewater) #59447
  • [2086f3365f] - vm: sync-ify SourceTextModule linkage (Chengzhong Wu) #59000
  • [c16163511d] - wasi: fix clean target in test/wasi/Makefile (Antoine du Hamel) #59576
  • [2e54411cb6] - worker: optimize cpu profile implement (theanarkh) #59683
  • [d6d05ba397] - (SEMVER-MINOR) worker: add cpu profile APIs for worker (theanarkh) #59428

Windows 64-bit Installer: https://nodejs.org/dist/v24.8.0/node-v24.8.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v24.8.0/node-v24.8.0-arm64.msi
Windows 64-bit Binary: https://nodejs.org/dist/v24.8.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v24.8.0/win-arm64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v24.8.0/node-v24.8.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v24.8.0/node-v24.8.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v24.8.0/node-v24.8.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v24.8.0/node-v24.8.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v24.8.0/node-v24.8.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v24.8.0/node-v24.8.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v24.8.0/node-v24.8.0-aix-ppc64.tar.gz
ARMv8 64-bit Binary: https://nodejs.org/dist/v24.8.0/node-v24.8.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v24.8.0/node-v24.8.0.tar.gz
Other release files: https://nodejs.org/dist/v24.8.0/
Documentation: https://nodejs.org/docs/v24.8.0/api/

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

5625b3bffa9b39811dc83e14f40ada2f8fe693de93ad9b75f3d652679d0ca823  node-v24.8.0-aix-ppc64.tar.gz
3c30119e4083d87c6501f7aa693dcf17215bc80f5f1ba7ca96d72ae5f0238635  node-v24.8.0-arm64.msi
d81191a1866760eb918caa976c023036bc1fc7405ea31b148905211522045767  node-v24.8.0-darwin-arm64.tar.gz
dfe6f85f52f5971e3873e2305294417091b57b56394709a8d5d6ad3f2a5fa480  node-v24.8.0-darwin-arm64.tar.xz
6fd8496b59baa8f86a24e3eb03308b763091716ffc6b6e1094d1a5e5696dd6dd  node-v24.8.0-darwin-x64.tar.gz
4e3fb475c0ab90109e83fc31ce994c76067ac9a92ca68e95eceece72c92ffa2b  node-v24.8.0-darwin-x64.tar.xz
db9ae39b4b8678d6d2a4bd8b299db2e2253dc32a1cdf7de7c339bebab228556c  node-v24.8.0-headers.tar.gz
7e867c1c0f8fd82cdf77987e3e608db82dd86a353df0cff8898fd6e0383b874f  node-v24.8.0-headers.tar.xz
5eb16b14af5a5f494ed54770822144e847c744fe590f8df093ad4927cf3dd7fd  node-v24.8.0-linux-arm64.tar.gz
323e6bc34bfe82a21f42d9eb94d9a2b6c8082d8c03cb510cf2f95dd1dcaa1531  node-v24.8.0-linux-arm64.tar.xz
20a0856e7b152a5e83b4fd6fe3d509aa54b75d6170cd89066c341d56f6c5de76  node-v24.8.0-linux-ppc64le.tar.gz
0ca68fc43fe09e18c57e8c64e9f1b24f0643be87d30f6816bd842c8a4d2d6cae  node-v24.8.0-linux-ppc64le.tar.xz
708d4edfafca2218fa98e0e8b8c20dc148334f2f882fcea1237c6536e8586d06  node-v24.8.0-linux-s390x.tar.gz
9c8cd3ac0b52fcb900424d94669b53ddc204e658fffbf11b3c6f94f93b068ffb  node-v24.8.0-linux-s390x.tar.xz
daf68404b478b4c3616666580d02500a24148c0f439e4d0134d65ce70e90e655  node-v24.8.0-linux-x64.tar.gz
2598641d188b41793930917f1a99a81c9615856b4205d408a44ab676c1acbb3d  node-v24.8.0-linux-x64.tar.xz
3f386cde016bd4424000c645d5887347998723810ddc08127c423c03f1e55d1d  node-v24.8.0.pkg
6e9e8c931b5028a755e6c4e1edaf14296001ae8bbb35976a3896f59e7fd797c7  node-v24.8.0.tar.gz
1c03b362ebf4740d4758b9a3d3087e3de989f54823650ec80b47090ef414b2e0  node-v24.8.0.tar.xz
7ccff15070850300c3e2b0dbec0466e6ea919315d2ec7be0f504c97d0017dd24  node-v24.8.0-win-arm64.7z
da63ba146c455eb74b7f5c6e8f45355d01b14d9bbab4054bdf250fc4e9f5d008  node-v24.8.0-win-arm64.zip
3b61856b25be8d688f64a1aa4a725528fcffc472758888bf16e6c9251994e767  node-v24.8.0-win-x64.7z
970ecc121a16f546174b6a870215ca4cc0de33f8a616b42c16c8c02e66b07d05  node-v24.8.0-win-x64.zip
f7e1fb2f58a206bb53c11f0e9f4a0bdd8292009b5449918fecb59bd2a834e535  node-v24.8.0-x64.msi
791f5c0c8b51906feb1c76a48e781dbbedc4cfec1d88648372078c03655ec0f7  win-arm64/node.exe
685a44e041d4031da838e7f6fa42bed60af91a1550207b5f3bbbe316036c653e  win-arm64/node.lib
c65cd8cd5b25d881491f625de0d036d3bf530bffa8c24a34002852240a161498  win-arm64/node_pdb.7z
7373c728112993337bdfab198dfc09292d69131752501844fb04a089aad0da5f  win-arm64/node_pdb.zip
3a9ac860c566b7aebf144be914f95e3ec36dc88040aa7acb5d9d1e6e0c7afd5e  win-x64/node.exe
e7c7e13b1e717a58ebc4a748248c607b5ec53c1ce025bbb99320700dbc7bc683  win-x64/node.lib
430b8ef1b4f5b39fae8d1cad16e9562c088d4ec7a74f9f699d4bba8449bc367e  win-x64/node_pdb.7z
e09614871fe3b022c3116ed43ebe79b7c5e5d2c5f2c60a56704700e7feacaf37  win-x64/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAmjB1CQACgkQdw96mlrh
VgAUzw/8CKSGwJwcpemckWRqFS2Q6CEOrvrL2thBRxI5pFW1OHtJPdtmvygwBoGt
hE3UXL3uSDqo/8MB4f3xr/LurfttM6KUJjdqPaJgIxqJ8bqGKcGaWQn4GI4N7n/d
vACyLM4v6L2c9ssV/5A1RpODnnAIa7NdcJyhe7sTrOntClpNHXh6GVnHdjTbFp9D
R/N/17fO/GaHeyoM5J+DHPnUdK3tEmZlJMD+AVo8IOfrrusIeUAo+i5L2aKlslWb
VOlbyezaa7hO2iglDhESfa/in8HcNFfLmU9uaAtsyWeF8XoJzzIqXU3xJQ/mVbte
ZZMdjjlaQi0nb0QbtXcwljdJTHwrGeUm7U5sZjeC7JnHr7+Df9/W833C8fS9sYV9
WWMosyJB5qJBO8rYfNNYYt0JWOiNKSz3oGWbb1zbfMqBoo/FBrMiwR3YdFetgDBi
pzHs8LMso8/Sgjh5fENO1xNp0ZmV8pJwqiFchrWteHXXaEap0m2oEQdmP5R/WYqa
XaTWC744qSh92AlDA89DtY4Sma1VYRSYhdzWAd3qbwgTOqghhAKG/1lWqYos5JwS
JnxW3+xzGlMfTZMkb9QZC62ErHaIyMYs/PN9/P9g/kWGztc9yvT3pDa56E1y/fJC
f8iqICGyKdQ2tu89Av7f1bnLqbfRDWGYhF4e1OdYV5OEh4yYx3U=
=dctJ
-----END PGP SIGNATURE-----