Node.js v24.9.0 (Current)

Michaël Zasso

2025-09-25, Version 24.9.0 (Current), @targos

Notable Changes

  • [9b043a9096] - (SEMVER-MINOR) http: add shouldUpgradeCallback to let servers control HTTP upgrades (Tim Perry) #59824
  • [a6456ab90a] - (SEMVER-MINOR) sqlite: cleanup ERM support and export Session class (James M Snell) #58378
  • [5563361d22] - (SEMVER-MINOR) sqlite: add tagged template (0hm☘️) #58748
  • [04013ee933] - (SEMVER-MINOR) worker: add heap profile API (theanarkh) #59846

Commits

  • [cbec4fd6de] - benchmark: calibrate config dgram multi-buffer (Bruno Rodrigues) #59696
  • [9a4bbdc3c5] - benchmark: calibrate config cluster/echo.js (Nam Yooseong) #59836
  • [0b284d86e8] - build: add the missing macro definitions for OpenHarmony (hqzing) #59804
  • [43e6e54d66] - build: do not include custom ESLint rules testing in tarball (Antoine du Hamel) #59809
  • [039ac19154] - crypto: expose signatureAlgorithm on X509Certificate (Patrick Costa) #59235
  • [647c332704] - crypto: use return await when returning Promises from async functions (Renegade334) #59841
  • [8ed4587cf0] - crypto: use async functions for non-stub Promise-returning functions (Renegade334) #59841
  • [bb051c56ef] - crypto: avoid calls to promise.catch() (Renegade334) #59841
  • [05e560dd25] - deps: update googletest to 50b8600 (Node.js GitHub Bot) #59955
  • [fa40d3a785] - deps: update archs files for openssl-3.5.3 (Node.js GitHub Bot) #59901
  • [8c85570d18] - deps: upgrade openssl sources to openssl-3.5.3 (Node.js GitHub Bot) #59901
  • [b71125664e] - deps: update undici to 7.16.0 (Node.js GitHub Bot) #59830
  • [dea5dd7077] - dgram: restore buffer optimization in fixBufferList (Yoo) #59934
  • [b0c1e67532] - diagnostics_channel: fix race condition with diagnostics_channel and GC (Ugaitz Urien) #59910
  • [0b37b594c3] - doc: use "WebAssembly" instead of "Web Assembly" (Tobias Nießen) #59954
  • [1e723f9c6b] - doc: fix typo in section on microtask order (Tobias Nießen) #59932
  • [a28962a85c] - doc: update V8 fast API guidance (René) #58999
  • [bd767c5d1b] - doc: add security escalation policy (Ulises Gascón) #59806
  • [9df91e59e1] - doc: type improvement of file http.md (yusheng chen) #58189
  • [e4f571680b] - doc: deprecate closing fs.Dir on garbage collection (Livia Medeiros) #59839
  • [e9cb986fa5] - doc: rephrase dynamic import() description (Nam Yooseong) #59224
  • [026d4e33f7] - doc,crypto: update subtle.generateKey and subtle.importKey (Filip Skokan) #59851
  • [2b2591db52] - esm: make hasAsyncGraph non-enumerable (Joyee Cheung) #59905
  • [993f05d323] - fs,win: do not add a second trailing slash in readdir (Gerhard Stöbich) #59847
  • [7aec53b607] - (SEMVER-MINOR) http: add shouldUpgradeCallback to let servers control HTTP upgrades (Tim Perry) #59824
  • [83ae6102e7] - http: optimize checkIsHttpToken for short strings (방진혁) #59832
  • [6695067636] - http,https: handle IPv6 with proxies (Joyee Cheung) #59894
  • [c5d910a0a9] - http2: fix allowHttp1+Upgrade, broken by shouldUpgradeCallback (Tim Perry) #59924
  • [acada1fb82] - inspector: ensure adequate memory allocation for Binary::toBase64 (René) #59870
  • [396cc8ec65] - lib: update inspect output format for subclasses (Miguel Marcondes Filho) #59687
  • [fed1dac8de] - lib: update isDeepStrictEqual to support options (Miguel Marcondes Filho) #59762
  • [d785929fd7] - lib: add source map support for assert messages (Chengzhong Wu) #59751
  • [ff13d1d61e] - lib,src: cache ModuleWrap.hasAsyncGraph (Chengzhong Wu) #59703
  • [b200cd8470] - lib,src: refactor assert to load error source from memory (Chengzhong Wu) #59751
  • [e94c57301b] - meta: add .npmrc with ignore-scripts=true (Joyee Cheung) #59914
  • [728472a57b] - module: only put directly require-d ESM into require.cache (Joyee Cheung) #59874
  • [be48760b93] - node-api: added SharedArrayBuffer api (Mert Can Altin) #59071
  • [f006a14522] - node-api: make napi_delete_reference use node_api_basic_env (Jeetu Suthar) #59684
  • [0f46c1c3b0] - repl: fix cpu overhead pasting big strings to the REPL (Ruben Bridgewater) #59857
  • [3eeb7b47ea] - sqlite: fix crash session extension callbacks with workers (Bart Louwers) #59848
  • [0fe53375ec] - (SEMVER-MINOR) sqlite: cleanup ERM support and export Session class (James M Snell) #58378
  • [9a3e58a007] - (SEMVER-MINOR) sqlite: add tagged template (0hm☘️) #58748
  • [f14ed5ab7b] - src: simplify watchdog instantiations via std::optional (Anna Henningsen) #59960
  • [e330f03f84] - src: update crypto objects to use DictionaryTemplate (James M Snell) #59942
  • [69b5607cf4] - src: simplify is_callable by making it a concept (Tobias Nießen) #58169
  • [86150f3401] - src: rename private fields to follow naming convention (Moonki Choi) #59923
  • [d17f299539] - src: use DictionaryTemplate more in URLPattern (James M Snell) #59892
  • [ac784912ac] - src: reduce the nearest parent package JSON cache size (Michael Smith) #59888
  • [abecdcb536] - src: replace FIXED_ONE_BYTE_STRING with Environment-cached strings (Moonki Choi) #59891
  • [2bb152500b] - src: create strings in FIXED_ONE_BYTE_STRING as internalized (Anna Henningsen) #59826
  • [03116a7cd8] - src: remove std::array overload of FIXED_ONE_BYTE_STRING (Anna Henningsen) #59826
  • [8a5325d6e3] - src: ensure v8::Eternal is empty before setting it (Anna Henningsen) #59825
  • [f0c20ccd81] - src: remove unnecessary Environment::GetCurrent() calls (Moonki Choi) #59814
  • [213188e491] - stream: use new AsyncResource instead of bind (Matteo Collina) #59867
  • [ce8435b003] - test: testcase demonstrating issue 59541 (Eric Rannaud) #59801
  • [8f32746142] - test: guard write to proxy client if proxy connection is ended (Joyee Cheung) #59742
  • [6790093fcb] - tls: load bundled and extra certificates off-thread (Joyee Cheung) #59856
  • [f5d3f919d8] - tls: only do off-thread certificate loading on loading tls (Joyee Cheung) #59856
  • [87bbaa23a0] - tools: fix tools/make-v8.sh for clang (Richard Lau) #59893
  • [0d23fd525b] - tools: skip test-internet workflow for draft PRs (Michaël Zasso) #59817
  • [e17c73731a] - tools: copyedit build-tarball.yml (Antoine du Hamel) #59808
  • [97c4e1bac9] - typings: remove unused imports (Nam Yooseong) #59880
  • [8b29bbca76] - url: replaced slice with at (Mikhail) #59181
  • [6458867a6b] - url: add type checking to urlToHttpOptions() (simon-id) #59753
  • [3c62b3886f] - util: inspect objects with throwing Symbol.toStringTag (Ruben Bridgewater) #59860
  • [6133a82875] - util: fix debuglog.enabled not being present with callback logger (Ruben Bridgewater) #59858
  • [9347ddddf4] - vm: explain how to share promises between contexts w/ afterEvaluate (Eric Rannaud) #59801
  • [44ce971619] - vm: "afterEvaluate", evaluate() return a promise from the outer context (Eric Rannaud) #59801
  • [6e586a1409] - vm: expose hasTopLevelAwait on SourceTextModule (Chengzhong Wu) #59865
  • [49747a58a3] - (SEMVER-MINOR) worker: add heap profile API (theanarkh) #59846
  • [b970c0bbc2] - zlib: reduce code duplication (jhofstee) #57810
  • [9782ca2b1b] - zlib: implement fast path for crc32 (Gürgün Dayıoğlu) #59813

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

SHASUMS

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

f9d608ca04a37b9bf94d77d29d4b14359fcb02d49d6d0d09fabfb3b3c86c9859  node-v24.9.0-aix-ppc64.tar.gz
a77b91ff7b3d3caa27d63f88b6c3192bb77de638c581ec08f944daf86d60f25c  node-v24.9.0-arm64.msi
961024296c2a8e60daed0784f8b61e0fab5c51d197502a92eff052c72b53209b  node-v24.9.0-darwin-arm64.tar.gz
a61297e99bb9beb1b46a0b45e7664d35f0897cf6c6ff30942317ef64ea27993a  node-v24.9.0-darwin-arm64.tar.xz
6c9ac12d3160538d96d456dc59a8fec1479e3f8b20bfc0d61bc809eb9ec11417  node-v24.9.0-darwin-x64.tar.gz
0ce1a51658a507b59fb7283c65c1474a28580dc19e3310c25e41bd8e6de8829c  node-v24.9.0-darwin-x64.tar.xz
3b83e03dbdfa1700073659724a77718c603b2836265f69da85ab8e0cadad99c5  node-v24.9.0-headers.tar.gz
4db1e4f2bc0a1787810a24a54e351e3e49889a13cbf987041a5d462c157fbf48  node-v24.9.0-headers.tar.xz
dab232a90169737a48149149dd6707e7fdcbaefbaa94b4871047a38e93db947f  node-v24.9.0-linux-arm64.tar.gz
5a5b1dc4906e891a655d2f0689db664879724f2d9e63309486fd588172a052bc  node-v24.9.0-linux-arm64.tar.xz
557d4e3f779f5af4fc29944647e6afd76901c5be7bc0c2bd8785a199a1bc0271  node-v24.9.0-linux-ppc64le.tar.gz
84acd1058a44634b7908165032a17af45fd7db1ad29faa7f7faf571d2d3e1a48  node-v24.9.0-linux-ppc64le.tar.xz
9baab2eb6b8d9efd2e3533ac79b572e697510f6582fdb572ba636c4d7b01d2b1  node-v24.9.0-linux-s390x.tar.gz
96849c844cb76145ac401cd36382ab02524b3bd1b5c494943bbf1fb4cdbd1b41  node-v24.9.0-linux-s390x.tar.xz
d57d6c28a35785f58f33899a0aa0bfc83f7a8ef4448b6cf3f7d0961efc7b9189  node-v24.9.0-linux-x64.tar.gz
f52ec50e959d72d5c680d9731420b2661cd2a8070e94c7369b6ddfcd8b7278be  node-v24.9.0-linux-x64.tar.xz
eeab837ca6cad49e4ac1b7ef765a69acd60240b546b2754de6771fa73507ad66  node-v24.9.0.pkg
3c868d88377cb05ed87674a6af6add3e04733dd429c3370620a5a6c547fe6460  node-v24.9.0.tar.gz
f17bc4cb01f59098c34a288c1bb109a778867c14eeb0ebbd608d0617b1193bbf  node-v24.9.0.tar.xz
e4da0650ae534cb905755e027c7e34bcb6732d7df54e5d9f5b0dd130532fe9ff  node-v24.9.0-win-arm64.7z
ead06448c62743d2b872574450c6b3cf1328d87f16e8057d7cea9a797170b160  node-v24.9.0-win-arm64.zip
9bc5b9d5b6263087f620f2d6b00b99f9f799e0f4d690b47ad49f34764f05331e  node-v24.9.0-win-x64.7z
6873514c3e6a012917cc6f95ce48a6289253370d025f1b69db290d70feebfa6e  node-v24.9.0-win-x64.zip
0fbae803c054807758f91463dea94b9301cc44b7d3545e7af5b58f5ca6396cf0  node-v24.9.0-x64.msi
15e5fab233dddb6035959c6efcbd73167f5a991a1f82cc20c0be65dcd08df54f  win-arm64/node.exe
fb036d418573ea032176a432dd14bc7d929c2a7d9f7a2d0d5239c2d9448a608e  win-arm64/node.lib
d5f0d0fe7d94e45d16ca628952871378772255f1246b8051ce6da4e3891794f8  win-arm64/node_pdb.7z
fe309b6cfdf2e6a781d8b2174503b74fa3525883c523620b044dfcc4097effab  win-arm64/node_pdb.zip
5f364598aa3017130b22908ff7c3db0fd05bd42d39fd65b79fd6bd3f73c73da6  win-x64/node.exe
05f6163d27cfc385e7d39fdf2e4d0950e6e56b5f85da5df9f201ecd7e3d2b69a  win-x64/node.lib
3023d466f3448db25c7de8d008699401b2ceb4ed751157435d3e3a925eaecf1c  win-x64/node_pdb.7z
e5216056aa08cfe87a45ab9c32f36a96168ec5a12ef514f9de4a2898807ba19e  win-x64/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAmjVnJAACgkQdw96mlrh
VgDHVBAAixARYiEdhjYV9Qu47Xw5gOEq60K+xDty1ukAjHsHCSNw1EVrwWse4z6j
1lY3ZH00e0bd5aDiLAxBtcEp3r2QcSYSga7iY7gBJ8uM+ygfxAVlGV/Ucy2lG8RO
7zCiOZ8Dx3bNEEFVeaGnFkpFlFGbjZS08zgksW8a1Oe9OQoZr8TggNIgjnpRgS09
bqAnNiiNAFD8mkUz7q7OLxkQzMRuFRF7Bv9BCrxBjLAPjo9bha2TTul2h5AhvNuq
izE3lBtXoclJdWtloSC2ONc7QEoKDUfE99a/eXh6BukPBYhA7zdJX+Nby5dCuAp9
zD+P6plZVA0uF7bCHcu3Cr3HhTyDWCmGa3yGpiPMlW0rS3UvhWy2bLEr1WJkz5rA
R2YIZ8GN9Y3JCA/dMk1Ph68bZZhpRmfMG2uDNDNS5BeATxfmCJXFqtimwt0uVknA
Xp+fvIkme3+MDa3FNuz+wwGlu2al/HQFpKFdIgaiOxqZpD7uBlMhumf1zny5jtrX
NSCa8ZlbhQUlGYgXmJFj6FFhxpYfKotw1eQzl4E+PrnolTzoR55a63EvvC0q7OHL
7eMM7e8+T6msuj6Nt4aTgC2/OESorIarDZXkA08k+V6mzCYaZTLo6J2PHAX9NNuV
N+NVrx4ssbCEdqDh7RiZJKx4iPARICqjd5LGlV21HUfxZEJnD8g=
=pxdo
-----END PGP SIGNATURE-----
Last Updated
Sep 25, 2025
Reading Time
5 min
Contribute
Edit this page
Table of Contents
  1. 2025-09-25, Version 24.9.0 (Current), @targos
  2. Notable Changes
  3. Commits
  4. SHASUMS