Node.js v22.21.0 (LTS)
Antoine du Hamel
2025-10-20, Version 22.21.0 'Jod' (LTS), @aduh95
Notable Changes
- [
1486fedea1
] - (SEMVER-MINOR) cli: add--use-env-proxy
(Joyee Cheung) #59151 - [
bedaaa11fc
] - (SEMVER-MINOR) http: support http proxy for fetch underNODE_USE_ENV_PROXY
(Joyee Cheung) #57165 - [
af8b5fa29d
] - (SEMVER-MINOR) http: addshouldUpgradeCallback
to let servers control HTTP upgrades (Tim Perry) #59824 - [
42102594b1
] - (SEMVER-MINOR) http,https: add built-in proxy support inhttp
/https.request
andAgent
(Joyee Cheung) #58980 - [
686ac49b82
] - (SEMVER-MINOR) src: add percentage support to--max-old-space-size
(Asaf Federman) #59082
Commits
- [
a71dd592e3
] - benchmark: calibrate config dgram multi-buffer (Bruno Rodrigues) #59696 - [
16c4b466f4
] - benchmark: calibrate config cluster/echo.js (Nam Yooseong) #59836 - [
53cb9f3b6c
] - build: add the missing macro definitions for OpenHarmony (hqzing) #59804 - [
ec5290fe01
] - build: do not include custom ESLint rules testing in tarball (Antoine du Hamel) #59809 - [
1486fedea1
] - (SEMVER-MINOR) cli: add --use-env-proxy (Joyee Cheung) #59151 - [
1f93913446
] - crypto: usereturn await
when returning Promises from async functions (Renegade334) #59841 - [
f488b2ff73
] - crypto: use async functions for non-stub Promise-returning functions (Renegade334) #59841 - [
aed9fd5ac4
] - crypto: avoid calls topromise.catch()
(Renegade334) #59841 - [
37c2d186f0
] - deps: update amaro to 1.1.4 (pmarchini) #60044 - [
28aea13419
] - deps: update archs files for openssl-3.5.4 (Node.js GitHub Bot) #60101 - [
ddbc1aa0bb
] - deps: upgrade openssl sources to openssl-3.5.4 (Node.js GitHub Bot) #60101 - [
badbba2da9
] - deps: update googletest to 50b8600 (Node.js GitHub Bot) #59955 - [
48aaf98a08
] - deps: update archs files for openssl-3.5.3 (Node.js GitHub Bot) #59901 - [
e02a562ea6
] - deps: upgrade openssl sources to openssl-3.5.3 (Node.js GitHub Bot) #59901 - [
7e0e86cb92
] - deps: upgrade npm to 10.9.4 (npm team) #60074 - [
91dda5facf
] - deps: update undici to 6.22.0 (Matteo Collina) #60112 - [
3a3220a2f0
] - dgram: restore buffer optimization in fixBufferList (Yoo) #59934 - [
09bdcce6b8
] - diagnostics_channel: fix race condition with diagnostics_channel and GC (Ugaitz Urien) #59910 - [
b3eeb3bd13
] - doc: provide alternative tourl.parse()
using WHATWG URL (Steven) #59736 - [
1ddaab1904
] - doc: mention reverse proxy and include simple example (Steven) #59736 - [
3b3b71e99c
] - doc: mark.env
files support as stable (Santeri Hiltunen) #59925 - [
d37f67d1bd
] - doc: remove optional title prefixes (Aviv Keller) #60087 - [
ca2dff63f9
] - doc: fix typo on child_process.md (Angelo Gazzola) #60114 - [
3fca564a05
] - doc: add automated migration info to deprecations (Augustin Mauroy) #60022 - [
4bc366fc16
] - doc: use "WebAssembly" instead of "Web Assembly" (Tobias Nießen) #59954 - [
4808dbdd9a
] - doc: fix typo in section on microtask order (Tobias Nießen) #59932 - [
d6e303d645
] - doc: update V8 fast API guidance (René) #58999 - [
0a3a3f729e
] - doc: add security escalation policy (Ulises Gascón) #59806 - [
8fd669c70d
] - doc: type improvement of filehttp.md
(yusheng chen) #58189 - [
9833dc6060
] - doc: rephrase dynamic import() description (Nam Yooseong) #59224 - [
2870a73681
] - doc,crypto: update subtle.generateKey and subtle.importKey (Filip Skokan) #59851 - [
85818db93c
] - fs,win: do not add a second trailing slash in readdir (Gerhard Stöbich) #59847 - [
bedaaa11fc
] - (SEMVER-MINOR) http: support http proxy for fetch under NODE_USE_ENV_PROXY (Joyee Cheung) #57165 - [
af8b5fa29d
] - (SEMVER-MINOR) http: add shouldUpgradeCallback to let servers control HTTP upgrades (Tim Perry) #59824 - [
758271ae66
] - http: optimize checkIsHttpToken for short strings (방진혁) #59832 - [
42102594b1
] - (SEMVER-MINOR) http,https: add built-in proxy support in http/https.request and Agent (Joyee Cheung) #58980 - [
a33ed9bf96
] - inspector: ensure adequate memory allocation forBinary::toBase64
(René) #59870 - [
34c686be2b
] - lib: update inspect output format for subclasses (Miguel Marcondes Filho) #59687 - [
12e553529c
] - lib: add source map support for assert messages (Chengzhong Wu) #59751 - [
d2a70571f8
] - lib,src: refactor assert to load error source from memory (Chengzhong Wu) #59751 - [
20a9e86b5d
] - meta: move Michael to emeritus (Michael Dawson) #60070 - [
c591cca15c
] - meta: bump github/codeql-action from 3.30.0 to 3.30.5 (dependabot[bot]) #60089 - [
090ba141b1
] - meta: bump codecov/codecov-action from 5.5.0 to 5.5.1 (dependabot[bot]) #60091 - [
a0ba6884a5
] - meta: bump actions/stale from 9.1.0 to 10.0.0 (dependabot[bot]) #60092 - [
0feca0c541
] - meta: bump actions/setup-node from 4.4.0 to 5.0.0 (dependabot[bot]) #60093 - [
7cd2b42d18
] - meta: bump step-security/harden-runner from 2.12.2 to 2.13.1 (dependabot[bot]) #60094 - [
1f3b9d66ac
] - meta: bump actions/cache from 4.2.4 to 4.3.0 (dependabot[bot]) #60095 - [
0fedbb3de7
] - meta: bump ossf/scorecard-action from 2.4.2 to 2.4.3 (dependabot[bot]) #60096 - [
04590b8267
] - meta: bump actions/setup-python from 5.6.0 to 6.0.0 (dependabot[bot]) #60090 - [
2bf0a9318f
] - meta: add .npmrc with ignore-scripts=true (Joyee Cheung) #59914 - [
e10dc7b81c
] - module: allow overriding linked requests for a ModuleWrap (Chengzhong Wu) #59527 - [
2237142369
] - module: link module with a module request record (Chengzhong Wu) #58886 - [
6d24b88fbc
] - node-api: added SharedArrayBuffer api (Mert Can Altin) #59071 - [
4cc84c96f4
] - node-api: make napi_delete_reference use node_api_basic_env (Jeetu Suthar) #59684 - [
e790eb6b50
] - repl: fix cpu overhead pasting big strings to the REPL (Ruben Bridgewater) #59857 - [
99ea08dc43
] - repl: add isValidParentheses check before wrap input (Xuguang Mei) #59607 - [
e4a4f63019
] - sqlite: fix crash session extension callbacks with workers (Bart Louwers) #59848 - [
42c5544b97
] - src: assert memory calc for max-old-space-size-percentage (Asaf Federman) #59460 - [
686ac49b82
] - (SEMVER-MINOR) src: add percentage support to --max-old-space-size (Asaf Federman) #59082 - [
84701ff668
] - src: clear all linked module caches once instantiated (Chengzhong Wu) #59117 - [
8e182e561f
] - src: remove unnecessaryEnvironment::GetCurrent()
calls (Moonki Choi) #59814 - [
c9cde35c4d
] - src: simplify is_callable by making it a concept (Tobias Nießen) #58169 - [
892b425ee1
] - src: rename private fields to follow naming convention (Moonki Choi) #59923 - [
36b68db7f5
] - src: reduce the nearest parent package JSON cache size (Michael Smith) #59888 - [
26b40bad02
] - src: replace FIXED_ONE_BYTE_STRING with Environment-cached strings (Moonki Choi) #59891 - [
34dcb7dc32
] - src: create strings inFIXED_ONE_BYTE_STRING
as internalized (Anna Henningsen) #59826 - [
4d748add05
] - src: removestd::array
overload ofFIXED_ONE_BYTE_STRING
(Anna Henningsen) #59826 - [
bb6fd7c2d1
] - src: ensurev8::Eternal
is empty before setting it (Anna Henningsen) #59825 - [
7a91282bf9
] - src: use simdjson::pad (0hm☘️) #59391 - [
ba00875f01
] - stream: use new AsyncResource instead of bind (Matteo Collina) #59867 - [
ebec3ef68b
] - (SEMVER-MINOR) test: move http proxy tests to test/client-proxy (Joyee Cheung) #58980 - [
7067d79fb3
] - test: mark sea tests flaky on macOS x64 (Richard Lau) #60068 - [
ca1942c9d5
] - test: testcase demonstrating issue 59541 (Eric Rannaud) #59801 - [
660d57355e
] - test,doc: skip --max-old-space-size-percentage on 32-bit platforms (Asaf Federman) #60144 - [
19a7b1ef26
] - tls: load bundled and extra certificates off-thread (Joyee Cheung) #59856 - [
095e7a81fc
] - tls: only do off-thread certificate loading on loading tls (Joyee Cheung) #59856 - [
c42c1204c7
] - tools: fixtools/make-v8.sh
for clang (Richard Lau) #59893 - [
b632a1d98d
] - tools: skip test-internet workflow for draft PRs (Michaël Zasso) #59817 - [
6021c3ac76
] - tools: copyeditbuild-tarball.yml
(Antoine du Hamel) #59808 - [
ef005d0c9b
] - typings: update 'types' binding (René) #59692 - [
28ef564ecd
] - typings: remove unused imports (Nam Yooseong) #59880 - [
f88752ddb6
] - url: replaced slice with at (Mikhail) #59181 - [
24c224960c
] - url: add type checking to urlToHttpOptions() (simon-id) #59753 - [
f2fbcc576d
] - util: fix debuglog.enabled not being present with callback logger (Ruben Bridgewater) #59858 - [
6277058e43
] - vm: sync-ify SourceTextModule linkage (Chengzhong Wu) #59000 - [
5bf21a4309
] - vm: explain how to share promises between contexts w/ afterEvaluate (Eric Rannaud) #59801 - [
312b33a083
] - vm: "afterEvaluate", evaluate() return a promise from the outer context (Eric Rannaud) #59801 - [
1eadab863c
] - win,tools: add description to signature (Martin Costello) #59877 - [
816e1befb1
] - zlib: reduce code duplication (jhofstee) #57810
Windows 32-bit Installer: https://nodejs.org/dist/v22.21.0/node-v22.21.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v22.21.0/node-v22.21.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v22.21.0/node-v22.21.0-arm64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v22.21.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v22.21.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v22.21.0/win-arm64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v22.21.0/node-v22.21.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v22.21.0/node-v22.21.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v22.21.0/node-v22.21.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v22.21.0/node-v22.21.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v22.21.0/node-v22.21.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v22.21.0/node-v22.21.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v22.21.0/node-v22.21.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v22.21.0/node-v22.21.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v22.21.0/node-v22.21.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v22.21.0/node-v22.21.0.tar.gz
Other release files: https://nodejs.org/dist/v22.21.0/
Documentation: https://nodejs.org/docs/v22.21.0/api/
SHASUMS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
8846bd37a71df4c581724c6435566de4b10d7f52ce9e3d848a7892a59c7d3a45 node-v22.21.0-aix-ppc64.tar.gz
9c6fa46ea627ba51561c4912494e496b0423629633bba57cfc42634ebaa42f9f node-v22.21.0-arm64.msi
dbc1a17024a32827adb23b5b11ce98cefcd783145a30fe41bb2845be711e9742 node-v22.21.0-darwin-arm64.tar.gz
54b884588727c9833cad6e4b902f922128b8da136ba845e76e878b0d2d08c8f4 node-v22.21.0-darwin-arm64.tar.xz
756674542a28207515cdd22ca290e53a9c1fb7b903603047278d339164eb376f node-v22.21.0-darwin-x64.tar.gz
8c61b1ab7b3a398717b3503fbd205d239079cac22402ee9327f4d3a240622d86 node-v22.21.0-darwin-x64.tar.xz
c89657f56c6cd89ae54e043dfe4a229f201267fd7f2547750dc76041acf5b578 node-v22.21.0-headers.tar.gz
bc20d7d09bc6ba807757b2a1c76523473ac88c1922523616b7fbf1ca154c60fa node-v22.21.0-headers.tar.xz
5180e74f2cdea6142548bd827249da32c0e86ba2581d6241e2f2761f957b9ed1 node-v22.21.0-linux-arm64.tar.gz
fe3e371f6f72d07a3f75a94a54c97d652ace6bfcc48f82cc0867f0c0722b84bd node-v22.21.0-linux-arm64.tar.xz
9bab62621d1d5f704d6e365be7804233d03851698aaaf554fe726aa02f59d8e4 node-v22.21.0-linux-armv7l.tar.gz
800d87999f4b7592ea3a780e6b5ec1f3ab41566b1031f15bbbbc03fef4f402f0 node-v22.21.0-linux-armv7l.tar.xz
b20b26276ad8f95c739db7e391e17be578905ecb4ea12274624ed513d2317d7e node-v22.21.0-linux-ppc64le.tar.gz
7faab4f786f79c886555d86520502db68df0c1a0fae47a8cf9237e4bac505a4e node-v22.21.0-linux-ppc64le.tar.xz
5291d90caec80f796b50666fc9a81b01c2db04e491555a9243091af0080a9c52 node-v22.21.0-linux-s390x.tar.gz
18110873863cc2f56eacb20f8da59adc3b53f5a7070f7d97501bd3d00003d236 node-v22.21.0-linux-s390x.tar.xz
262b84b02f7e2bc017d4bdb81fec85ca0d6190a5cd0781d2d6e84317c08871f8 node-v22.21.0-linux-x64.tar.gz
71a04f4b9144870c9407b8019fe912514229e50246bc706862eded3ac8e9025d node-v22.21.0-linux-x64.tar.xz
3fce2daac6b36f6343d79ef72590b46ada5b22df3538e45e46c521c531f3f205 node-v22.21.0-win-arm64.7z
6b44ae79925840ac80d91c3115f9f78ad24ea34f85807db85bcdb7d37f28e07b node-v22.21.0-win-arm64.zip
31a82a950fd2524651f0409307afe3276ae68a13a131e8b72945a3931109c8c3 node-v22.21.0-win-x64.7z
84d31df6571c3c7156707265bf51e2a021656fa1584bf6f4486b792dcde54d7d node-v22.21.0-win-x64.zip
d2767e24741f915477002d6325dda40f7554ce9e5176c8d2e824dc127d273725 node-v22.21.0-win-x86.7z
eba103ab3fa3d1ad5158bf9ad38f81d2e7cc5d6d78e06b68f017cf696016025e node-v22.21.0-win-x86.zip
78da2f62c917bdc931fb3518f3f10c0c1e74b5305d0a85a8d308e081c2af3038 node-v22.21.0-x64.msi
183ed7bddfda69c71d9381f33f368da983ddab6ee357f2324774d0a429c311df node-v22.21.0-x86.msi
bfc3d8bf34b47f79044ca0227b0c2b130ed6633a677d18d806ff71e1824d1f78 node-v22.21.0.pkg
3ada9d465cd6557b7b0ccea5f785278931a2a319bc941f68b2e742c6883f18ad node-v22.21.0.tar.gz
791b18e969ea22cc952108ee8eaafbb12cddfd973bbbb0b7fc116395c0d9a81c node-v22.21.0.tar.xz
17f35e7c7ed8626c6b9def40f57f8ae74ff6ff2e5788ca4bb0577d3e07d71bcc win-arm64/node.exe
9265150c60463c2c524b7475f8a1f70943dcc05a735f3110ee50446ed4fff965 win-arm64/node.lib
1295f96e2762c7ca4544b8dba9d768176656c67a0763a012e6d6251fb79f036b win-arm64/node_pdb.7z
d50f2ddba93b9b874dc9ce2de519850b5e12a754deb31b903dcf139337c68822 win-arm64/node_pdb.zip
47cd67453da180a39cdf5daedb89862667b8e627e60c116607874633450cd30d win-x64/node.exe
aa0ec2c0281c18a5a4753b2d7f4fec0e2ba0b004be1f61b3bb9feb15e544a968 win-x64/node.lib
ef6674c5480935e0471cac80d3897eceba38c71c1e42323b4a189078b7fd780f win-x64/node_pdb.7z
14b8d6cbfe1b29a2cfabf459d6f07a5cdc6855abde875ee67f64fa777eea72d8 win-x64/node_pdb.zip
9a6cf3570b09b744bf675d0ea984ecb0ca3f92931d40f17ee423e142df4d3c5e win-x86/node.exe
2428b7ac2df89e23fcc5d5d0d1b4c2baf4ff515575fe7fa5d7dd0575673fcd64 win-x86/node.lib
6aa8de167074d2352a4ee93924122f3d6be512ff0a398c26456fec15c30e0c29 win-x86/node_pdb.7z
9f5d0ac4c678ecc4236479875a9ee84abedafea16878ffbdd4fd7bb62329bc8a win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
iHUEARYIAB0WIQRb6KP2yKXAHRBsCtggsaOQsWjTVgUCaPbKwQAKCRAgsaOQsWjT
VhjhAQDdE2iAOd/4UtnGF6Iwr//TT8O1Zv4auzvTGZMZUSKAHgD+PaU6k1BDxVZG
kRtCBKy6BpYYW7+sC/6H8vLx6YQq4Qw=
=mFMf
-----END PGP SIGNATURE-----