Skip to content

Releases: nodejs/node

2025-05-14, Version 24.0.2 (Current), @RafaelGSS

14 May 21:20
v24.0.2
de981b4

Choose a tag to compare

This is a security release.

Notable Changes

Commits

2025-05-14, Version 23.11.1 (Current), @RafaelGSS

14 May 21:20
v23.11.1
9b666af

Choose a tag to compare

This is a security release.

Notable Changes

src:

Commits

2025-05-14, Version 22.15.1 'Jod' (LTS), @RafaelGSS

14 May 21:19
v22.15.1
7039b12

Choose a tag to compare

This is a security release.

Notable Changes

Commits

2025-05-14, Version 20.19.2 'Iron' (LTS), @RafaelGSS

14 May 21:19
v20.19.2
10eb2fb

Choose a tag to compare

This is a security release.

Notable Changes

Commits

2025-05-08, Version 24.0.1 (Current), @aduh95

08 May 20:14
v24.0.1
f7b92d7

Choose a tag to compare

Notable Changes

Commits

  • [d38e811c5b] - benchmark: fix typo in method name for error-stack (Miguel Marcondes Filho) #58128
  • [2e1d9581e0] - Revert "buffer: move SlowBuffer to EOL" (Filip Skokan) #58211
  • [a883b0c979] - build: use //third_party/simdutf by default in GN (Shelley Vohr) #58115
  • [3d84b5c7a4] - doc: add HBSPS as triager (Wiyeong Seo) #57980
  • [1e57cb686e] - doc: add history entries to --input-type section (Antoine du Hamel) #58175
  • [0b54f06b6f] - doc: add ambassaor message (Brian Muenzenmeyer) #57600
  • [46bee52d57] - doc: fix misaligned options in vm.compileFunction() (Jimmy Leung) #58145
  • [e732a8bfdd] - doc: fix typo in benchmark script path (Miguel Marcondes Filho) #58129
  • [d49ff34adb] - doc: add missing options.signal to readlinePromises.createInterface() (Jimmy Leung) #55456
  • [bc9f5a2e79] - doc: fix typo of file zlib.md (yusheng chen) #58093
  • [c8e8558958] - doc: clarify future Corepack removal in v25+ (Trivikram Kamat) #57825
  • [b13d5d14bd] - meta: bump actions/setup-node from 4.3.0 to 4.4.0 (dependabot[bot]) #58111
  • [0ebb17a300] - meta: bump actions/setup-python from 5.5.0 to 5.6.0 (dependabot[bot]) #58107
  • [5946785bf4] - tools: exclude deps/v8/tools from CodeQL scans (Rich Trott) #58132
  • [0708497c7f] - tools: bump the eslint group in /tools/eslint with 6 updates (dependabot[bot]) #58105

2025-05-06, Version 24.0.0 (Current), @RafaelGSS and @juanarbol

06 May 14:34
v24.0.0
c5349f4

Choose a tag to compare

We’re excited to announce the release of Node.js 24! This release brings
several significant updates, including the upgrade of the V8 JavaScript
engine to version 13.6 and npm to version 11. Starting with
Node.js 24, support for MSVC has been removed, and ClangCL is now required
to compile Node.js on Windows. The AsyncLocalStorage API now uses
AsyncContextFrame by default, and URLPattern is available globally.
These changes, along with many other improvements, continue to push the
platform forward.

As a reminder, Node.js 24 will enter long-term support (LTS) in October,
but until then, it will be the "Current" release for the next six months.
We encourage you to explore the new features and benefits offered by this
latest release and evaluate their potential impact on your applications.

Notable Changes

V8 13.6

The V8 engine is updated to version 13.6, which includes several new
JavaScript features:

The V8 update was a contribution by MichaΓ«l Zasso in #58070.

npm 11

Node.js 24 comes with npm 11, which includes several improvements and new
features. This update brings enhanced performance, improved security features,
and better compatibility with modern JavaScript packages.

The npm update was a contribution by the npm team in #56274.

AsyncLocalStorage defaults to AsyncContextFrame

AsyncLocalStorage now uses AsyncContextFrame by default, which provides a
more efficient implementation of asynchronous context tracking.
This change improves performance and makes the API more robust for advanced
use cases.

This change was a contribution by Stephen Belanger in #55552.

URLPattern as a global

The URLPattern
API is now exposed on the global object, making it easier to use without
explicit imports. This API provides a powerful pattern matching system for URLs,
similar to how regular expressions work for strings.

This feature was a contribution by Jonas Badalič in #56950.

Permission Model Improvements

The experimental Permission Model introduced in Node.js 20 has been improved,
and the flag has been changed from --experimental-permission to simply
--permission, indicating its increasing stability and readiness for broader
adoption.

This change was a contribution by Rafael Gonzaga in #56240.

Test Runner Enhancements

The test runner module now automatically waits for subtests to finish,
eliminating the need to manually await test promises. This makes writing tests
more intuitive and reduces common errors related to unhandled promises.

The test runner improvements were contributions by Colin Ihrig in #56664.

Undici 7

Node.js 24 includes Undici 7, which brings numerous improvements to the
HTTP client capabilities, including better performance and support for newer
HTTP features.

Deprecations and Removals

Several APIs have been deprecated or removed in this release:

  • Runtime deprecation of url.parse() - use the WHATWG URL API instead (#55017)
  • Removal of deprecated tls.createSecurePair (#57361)
  • Runtime deprecation of SlowBuffer (#55175)
  • Runtime deprecation of instantiating REPL without new (#54869)
  • Deprecation of using Zlib classes without new (#55718)
  • Deprecation of passing args to spawn and execFile in child_process (#57199)

Semver-Major Commits

  • [c6b934380a] - (SEMVER-MAJOR) src: enable Float16Array on global object (MichaΓ«l Zasso) #58154
  • [69efb81a73] - (SEMVER-MAJOR) src: enable explicit resource management (MichaΓ«l Zasso) #58154
  • [b00ff4270e] - (SEMVER-MAJOR) src,test: unregister the isolate after disposal and before freeing (Joyee Cheung) #58070
  • [b81697d860] - (SEMVER-MAJOR) src: use non-deprecated WriteUtf8V2() method (Yagiz Nizipli) #58070
  • [1f06169b87] - (SEMVER-MAJOR) src: use non-deprecated Utf8LengthV2() method (Yagiz Nizipli) #58070
  • [eae9a296f0] - (SEMVER-MAJOR) src: use V8-owned CppHeap (Joyee Cheung) #58070
  • [087c254a11] - (SEMVER-MAJOR) test: fix test-fs-write for V8 13.6 (MichaΓ«l Zasso) #58070
  • [9e49bedd8e] - (SEMVER-MAJOR) build: update list of installed cppgc headers (MichaΓ«l Zasso) #58070
  • [93cca8a43e] - (SEMVER-MAJOR) tools: update V8 gypfiles for 13.6 (MichaΓ«l Zasso) #58070
  • [347daa07be] - (SEMVER-MAJOR) tools: update V8 gypfiles for 13.5 (MichaΓ«l Zasso) #58070
  • [2a35d5a86c] - (SEMVER-MAJOR) build: fix V8 TLS config for shared lib builds (MichaΓ«l Zasso) #58070
  • [b0fb5a09cf] - (SEMVER-MAJOR) build: pass -fPIC to linker as well for shared builds (MichaΓ«l Zasso) #58070
  • [dd4c5d6c73] - (SEMVER-MAJOR) src,test: add V8 API to test the hash seed (MichaΓ«l Zasso) #58070
  • [1d5d7b6eed] - (SEMVER-MAJOR) src: use v8::ExternalMemoryAccounter (MichaΓ«l Zasso) #58070
  • [3779e43cce] - (SEMVER-MAJOR) tools: update license-builder and LICENSE for V8 deps (MichaΓ«l Zasso) #58070
  • [82c2255206] - (SEMVER-MAJOR) deps: remove deps/simdutf (MichaΓ«l Zasso) #58070
  • [8a258eb7b1] - (SEMVER-MAJOR) test: handle explicit resource management globals (MichaΓ«l Zasso) #58070
  • [9e0d9b6024] - (SEMVER-MAJOR) test: adapt assert tests to stack trace changes (MichaΓ«l Zasso) #58070
  • [f7406aa56d] - (SEMVER-MAJOR) test: update test-linux-perf-logger (MichaΓ«l Zasso) #58070
  • [c7493fac5e] - (SEMVER-MAJOR) Revert "test: disable fast API call count checks" (MichaΓ«l Zasso) #58070
  • [50a8527867] - (SEMVER-MAJOR) src: replace uses of FastApiTypedArray (MichaΓ«l Zasso) #58070
  • [9c1ebb713c] - (SEMVER-MAJOR) build: add /bigobj to compile V8 on Windows (MichaΓ«l Zasso) #58070
  • [fb3d5ea45d] - (SEMVER-MAJOR) tools: update V8 gypfiles for 13.4 (MichaΓ«l Zasso) #58070
  • [756abacf73] - (SEMVER-MAJOR) build,src,tools: adapt build config for V8 13.3 (MichaΓ«l Zasso) #58070
  • [f8953e54b0] - (SEMVER-MAJOR) tools: update V8 gypfiles for 13.2 (MichaΓ«l Zasso) #58070
  • [c8a0e205e1] - (SEMVER-MAJOR) tools: update V8 gypfiles for 13.1 (MichaΓ«l Zasso) #58070
  • [1689ee84ce] - (SEMVER-MAJOR) build: enable shared RO heap with ptr compression (MichaΓ«l Zasso) #58070
  • [[15f2fb9467](https://github.com/nodejs/node/comm...
Read more

2025-04-23, Version 22.15.0 'Jod' (LTS), @UlisesGascon prepared by @RafaelGSS

23 Apr 07:47
v22.15.0
b009466

Choose a tag to compare

Notable Changes

  • [3c88f3938b] - (SEMVER-MINOR) assert: implement partial error comparison (Ruben Bridgewater) #57370
  • [db19a3f9fc] - (SEMVER-MINOR) assert: improve partialDeepStrictEqual (Ruben Bridgewater) #57370
  • [1ee5f840b4] - (SEMVER-MINOR) cli: allow --cpu-prof* in NODE_OPTIONS (Carlos Espa) #57018
  • [872ee0f2ac] - crypto: update root certificates to NSS 3.108 (Node.js GitHub Bot) #57381
  • [03a0f3a56b] - (SEMVER-MINOR) crypto: support --use-system-ca on Windows (Joyee Cheung) #56833
  • [94647bbdb2] - (SEMVER-MINOR) crypto: added support for reading certificates from macOS system store (Tim Jacomb) #56599
  • [8f7b86a6e7] - deps: update timezone to 2025a (Node.js GitHub Bot) #56876
  • [f9f611fb58] - (SEMVER-MINOR) deps,tools: add zstd 1.5.6 (Jan Martin) #52100
  • [07a6d5f8cf] - (SEMVER-MINOR) dns: add TLSA record query and parsing (Rithvik Vibhu) #52983
  • [d8a83ef2f3] - doc: add @geeksilva97 to collaborators (Edy Silva) #57241
  • [6b93ba723b] - (SEMVER-MINOR) module: use synchronous hooks for preparsing in import(cjs) (Joyee Cheung) #55698
  • [b2e44a8079] - (SEMVER-MINOR) module: implement module.registerHooks() (Joyee Cheung) #55698
  • [dc91ae7471] - (SEMVER-MINOR) process: add execve (Paolo Insogna) #56496
  • [bc672fcfdd] - (SEMVER-MINOR) sqlite: allow returning ArrayBufferViews from user-defined functions (RenΓ©) #56790
  • [5edee197ab] - (SEMVER-MINOR) tls: implement tls.getCACertificates() (Joyee Cheung) #57107
  • [f9fe0e09ee] - (SEMVER-MINOR) util: expose diff function used by the assertion errors (Giovanni Bucci) #57462
  • [673a424180] - (SEMVER-MINOR) v8: add v8.getCppHeapStatistics() method (Aditi) #57146
  • [4991e5d826] - (SEMVER-MINOR) zlib: add zstd support (Jan Martin) #52100

Commits

  • [ea70a379c3] - assert: improve partialDeepStrictEqual performance (Ruben Bridgewater) #57509
  • [2b419d7e79] - (SEMVER-MINOR) assert: implement partial error comparison (Ruben Bridgewater) #57370
  • [d817c17fd7] - (SEMVER-MINOR) assert: improve partialDeepStrictEqual (Ruben Bridgewater) #57370
  • [7af0440073] - assert: improve myers diff performance (Giovanni Bucci) #57279
  • [01cf5fb871] - (SEMVER-MINOR) assert,util: improve performance (Ruben Bridgewater) #57370
  • [a58842cee4] - (SEMVER-MINOR) benchmark: adjust assert runtimes (Ruben Bridgewater) #57370
  • [b20b3697aa] - (SEMVER-MINOR) benchmark: skip running some assert benchmarks by default (Ruben Bridgewater) #57370
  • [ec5570fd1e] - (SEMVER-MINOR) benchmark: add assert partialDeepStrictEqual benchmark (Ruben Bridgewater) #57370
  • [b991bf4ca6] - benchmark: add a warmup on bench-openSync (Elves Vieira) #57051
  • [4a455bc806] - build: fix update-wpt workflow (Jonas) #57468
  • [6ec397e61c] - build: fix compatibility with V8's depot_tools (Richard Lau) #57330
  • [475aaca336] - build: print 'Formatting Markdown...' for long task markdown formatting (1ilsang) #57108
  • [73fced7a97] - build: fix GN build failure (Cheng) #57013
  • [af05f91425] - build: fix GN build of uv (Cheng) #56955
  • [fd3053e947] - build: gyp exclude libm linking on macOS (deepak1556) #56901
  • [5ec6b9a50f] - build: remove explicit linker call to libm on macOS (deepak1556) #56901
  • [a893da9be7] - build: link with Security.framework in GN build (Cheng) #56895
  • [02cd8e0a50] - build: do not put commands in sources variables (Cheng) #56885
  • [73dc8c2140] - build: add double quotes around <(python) (Luigi Pinca) #56826
  • [65a3b5f73c] - build: add build option suppress_all_error_on_warn (Michael Dawson) #56647
  • [424aacc942] - build,win: disable node pch with ccache (Stefan Stojanovic) #57224
  • [901685c723] - build,win: enable ccache (Stefan Stojanovic) #56847
  • [79987676c1] - cli: clarify --cpu-prof-name allowed values (Eugenio Ceschia) #57433
  • [503d4237aa] - (SEMVER-MINOR) cli: allow --cpu-prof* in NODE_OPTIONS (Carlos Espa) #57018
  • [ada572b733] - crypto: ensure expected JWK alg in SubtleCrypto.importKey RSA imports (Filip Skokan) #57450
  • [7e5aabde55] - crypto: update root certificates to NSS 3.108 (Node.js GitHub Bot) #57381
  • [7ea6ac1e09] - crypto: add support for intermediate certs in --use-system-ca (Tim Jacomb) #57164
  • [44b19ec534] - crypto: support --use-system-ca on non-Windows and non-macOS (Joyee Cheung) #57009
  • [e21d126438] - crypto: fix missing OPENSSL_NO_ENGINE guard (Shelley Vohr) #57012
  • [2fdf82b357] - crypto: cleanup root certificates and skip PEM deserialization (Joyee Cheung) #56999
  • [03a0f3a56b] - (SEMVER-MINOR) crypto: support --use-system-ca on Windows (Joyee Cheung) #56833
  • [bbdb10bc2c] - crypto: fix X509* leak in --use-system-ca (Joyee Cheung) #56832
  • [5470cab6d3] ...
Read more

2025-04-22, Version 20.19.1 'Iron' (LTS), @UlisesGascon prepared by @RafaelGSS

22 Apr 13:24
v20.19.1
e7a6507

Choose a tag to compare

Notable Changes

Commits

  • [d5e73ce0f8] - deps: update undici to 6.21.2 (Matteo Collina) #57442
  • [e4a6323ab2] - deps: update c-ares to v1.34.5 (Node.js GitHub Bot) #57792
  • [b2b9eb36af] - dns: restore dns query cache ttl (Ethan Arrowood) #57640
  • [07a99a5c0b] - doc: correct status of require(esm) warning in v20 changelog (Joyee Cheung) #57529
  • [d45517ccbf] - meta: bump Mozilla-Actions/sccache-action from 0.0.8 to 0.0.9 (dependabot[bot]) #57720
  • [fa93bb2633] - test: update parallel/test-tls-dhe for OpenSSL 3.5 (Richard Lau) #57477
  • [29c032403c] - tools: update sccache to support GH cache changes (MichaΓ«l Zasso) #57573

2025-04-01, Version 23.11.0 (Current), @aduh95

01 Apr 14:29
v23.11.0
9ad070e

Choose a tag to compare

Notable Changes

  • [64b086740a] - (SEMVER-MINOR) assert: implement partial error comparison (Ruben Bridgewater) #57370
  • [053cef70e0] - (SEMVER-MINOR) crypto: add optional callback to crypto.diffieHellman (Filip Skokan) #57274
  • [f8aff90235] - (SEMVER-MINOR) process: add execve (Paolo Insogna) #56496
  • [4b04c92d7d] - (SEMVER-MINOR) sqlite: add StatementSync.prototype.columns() (Colin Ihrig) #57490
  • [1b8d1d3a3a] - (SEMVER-MINOR) util: expose diff function used by the assertion errors (Giovanni Bucci) #57462

Commits

  • [7b72396c8b] - assert: improve partialDeepStrictEqual performance (Ruben Bridgewater) #57509
  • [64b086740a] - (SEMVER-MINOR) assert: implement partial error comparison (Ruben Bridgewater) #57370
  • [f694d7de0e] - (SEMVER-MINOR) assert: improve partialDeepStrictEqual (Ruben Bridgewater) #57370
  • [80d9d5653f] - (SEMVER-MINOR) assert,util: improve performance (Ruben Bridgewater) #57370
  • [d52a71f832] - (SEMVER-MINOR) benchmark: adjust assert runtimes (Ruben Bridgewater) #57370
  • [7592cf4cd7] - (SEMVER-MINOR) benchmark: skip running some assert benchmarks by default (Ruben Bridgewater) #57370
  • [e4cc54a746] - (SEMVER-MINOR) benchmark: add assert partialDeepStrictEqual benchmark (Ruben Bridgewater) #57370
  • [de48407011] - build: fix update-wpt workflow (Jonas) #57468
  • [52cd0954f9] - cli: clarify --cpu-prof-name allowed values (Eugenio Ceschia) #57433
  • [7611fc14de] - crypto: fix output of privateDecrypt with zero-length data (Filip Skokan) #57575
  • [cc42ee8fc7] - crypto: ensure expected JWK alg in SubtleCrypto.importKey RSA imports (Filip Skokan) #57450
  • [053cef70e0] - (SEMVER-MINOR) crypto: add optional callback to crypto.diffieHellman (Filip Skokan) #57274
  • [1f08864fd7] - debugger: fix behavior of plain object exec in debugger repl (Dario Piotrowicz) #57498
  • [162b2828eb] - deps: update undici to 6.21.2 (Matteo Collina) #57442
  • [43bea6bb80] - deps: V8: cherry-pick c172ffc5bf54 (Choongwoo Han) #57437
  • [99f93afb9d] - deps: update ada to v3.2.1 (Yagiz Nizipli) #57429
  • [30e5658f12] - deps: update googletest to 0bdccf4 (Node.js GitHub Bot) #57380
  • [573467c070] - deps: update acorn to 8.14.1 (Node.js GitHub Bot) #57382
  • [affeaac0c7] - doc: add gurgunday as triager (GΓΌrgΓΌn DayΔ±oğlu) #57594
  • [4ed1a098f5] - doc: clarify behaviour of node-api adjust function (Michael Dawson) #57463
  • [921041b284] - doc: remove Corepack documentation (Antoine du Hamel) #57635
  • [99dbd8b391] - doc: remove mention of --require not supporting ES modules (HuΓ‘ng JΓΉnliΓ ng) #57620
  • [8c76b2949e] - doc: mention reports should align with Node.js CoC (Rafael Gonzaga) #57607
  • [ee1c78a7a3] - doc: add section stating that very stale PRs should be closed (Dario Piotrowicz) #57541
  • [595e9e5ad6] - doc: add bjohansebas as triager (Sebastian Beltran) #57564
  • [3742d2a198] - doc: update support channels (Claudio W.) #57538
  • [717c44dead] - doc: make stability labels more consistent (Antoine du Hamel) #57516
  • [b4576a6f57] - doc: remove cryptoStream API reference (Jonas) #57579
  • [2c4f894036] - doc: module resolution pseudocode corrections (Marcel Laverdet) #57080
  • [c45894f90c] - doc: add history entry for DEP0190 in child_process.md (Antoine du Hamel) #57544
  • [c21068b696] - doc: remove deprecated pattern in child_process.md (Antoine du Hamel) #57568
  • [87e0dda352] - doc: mark multiple experimental APIS as stable (James M Snell) #57510
  • [d637763e4e] - doc: remove mertcanaltin from Triagers (Mert Can Altin) #57531
  • [ee6025495d] - doc: recommend watching the collaborators repo in the onboarding doc (Darshan Sen) #57527
  • [706b64638b] - doc: remove mention of visa fees from onboarding doc (Darshan Sen) #57526
  • [176d951bd0] - doc: deprecate passing args to spawn and execFile (Antoine du Hamel) #57389
  • [5c05ba119b] - doc: remove some inconsistencies in deprecations.md (Antoine du Hamel) #57512
  • [9d5be4bb8c] - doc: run license-builder (github-actions[bot]) #57511
  • [273607edb4] - doc: add new writing-docs contributing md (Dario Piotrowicz) #57502
  • [e28c723f24] - doc: add node.js streams references to Web Streams doc (Dario Piotrowicz) #57393
  • [47296492ba] - doc: replace NOTEs that do not render properly (Colin Ihrig) #57484
  • [db9c37f792] - doc: prefer to sign commits under nodejs repository (Rafael Gonzaga) #57311
  • [e5e3987ae7] - doc: fixed the incorrect splitting of multiple words (letianpailove) #57454
  • [91a824e43b] - doc: add review guidelines for collaborator nominations (Antoine du Hamel) #57449
  • [2a5fcb2172] - doc: fix typo in url.md (Allon Murienik) #57467
  • [17ccf9282f] - doc: add history info for --use-system-ca (Darshan Sen) #57432
  • ...
Read more

2025-03-27, Version 18.20.8 'Hydrogen' (LTS), @richardlau

27 Mar 13:33
v18.20.8
4d0b4e7

Choose a tag to compare

Notable Changes

This release updates OpenSSL to 3.0.16 and root certificates to NSS 3.108.

Commits

  • [f737a79073] - async_hooks,inspector: implement inspector api without async_wrap (Gabriel Bota) #51501
  • [fce923ba69] - build: update gcovr to 7.2 and codecov config (Benjamin E. Coe) #54019
  • [8b7ffd807c] - build: fix compatibility with V8's depot_tools (Richard Lau) #57330
  • [ee9a343413] - crypto: update root certificates to NSS 3.108 (Node.js GitHub Bot) #57381
  • [738bf8aea4] - crypto: update root certificates to NSS 3.104 (Richard Lau) #55681
  • [69d661d591] - deps: update undici to v5.29.0 (Matteo Collina) #57557
  • [59fcf43b0e] - deps: update corepack to 0.32.0 (Node.js GitHub Bot) #57265
  • [1b72869503] - deps: update archs files for openssl-3.0.16 (Node.js GitHub Bot) #57335
  • [a566560235] - deps: upgrade openssl sources to quictls/openssl-3.0.16 (Node.js GitHub Bot) #57335
  • [50c4e1da2f] - doc: add missing deprecated badges in fs.md (Yukihiro Hasegawa) #57384
  • [c3babb4671] - doc: update Xcode version used for arm64 and pkg (MichaΓ«l Zasso) #57104
  • [784da606a6] - doc: fix link and history of SourceMap sections (Antoine du Hamel) #57098
  • [f5dbceccbe] - test: update error code in tls-psk-circuit for for OpenSSL 3.4 (sebastianas) #56420