This is a cached version of https://nodejs.org/en/blog/release/v22.5.0 from 2/28/2026, 3:14:33 PM.
Node.js — Node.js 22.5.0 (Current)
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Skip to contentNode.js 22.5.0 (Current)ADHAntoine du HamelNode.js 22.5.0 (Current)2024-07-17, Version 22.5.0 (Current), @RafaelGSS prepared by @aduh95 Notable Changes [1367c5558e] - (SEMVER-MINOR) http: expose websockets (Natalia Venditto) #53721 [b31394920d] - (SEMVER-MINOR) lib: add node:sqlite module (Colin Ihrig) #53752 [aa7df9551d] - module: add __esModule to require()'d ESM (Joyee Cheung) #52166 [8743c4d65a] - (SEMVER-MINOR) path: add matchesGlob method (Aviv Keller) #52881 [77936c3d24] - (SEMVER-MINOR) process: port on-exit-leak-free to core (Vinicius Lourenço) #53239 [82d88a83f8] - (SEMVER-MINOR) stream: pipeline wait for close before calling the callback (jakecastelli) #53462 [3a0fcbb17a] - test_runner: support glob matching coverage files (Aviv Keller) #53553 [22ca334090] - (SEMVER-MINOR) worker: add postMessageToThread (Paolo Insogna) #53682 Commits [eb4e370933] - benchmark: add require-esm benchmark (Joyee Cheung) #52166 [4d4a8338db] - benchmark: add cpSync benchmark (Yagiz Nizipli) #53612 [3d60b38afa] - build: fix build warning of c-ares under GN build (Cheng) #53750 [a45c801048] - build: fix build error in sqlite under GN build (Cheng) #53686 [40032eb623] - build: add gn files for deps/nbytes (Cheng) #53685 [082799debb] - build: fix mac build error of c-ares under GN (Cheng) #53687 [b05394ea6a] - build: add version-specific library path for AIX (Richard Lau) #53585 [6237172eaf] - cli: update node.1 to reflect Atom's sunset (Aviv Keller) #53734 [5697938cb7] - crypto: avoid std::function (Tobias Nießen) #53683 [3cc01aa314] - crypto: make deriveBits length parameter optional and nullable (Filip Skokan) #53601 [f82e20fdea] - crypto: avoid taking ownership of OpenSSL objects (Tobias Nießen) #53460 [ad1e5610ec] - deps: update googletest to 4b21f1a (Node.js GitHub Bot) #53842 [d285d610a0] - deps: update minimatch to 10.0.1 (Node.js GitHub Bot) #53841 [70f5209c9f] - deps: update corepack to 0.29.2 (Node.js GitHub Bot) #53838 [4930e12a45] - deps: update simdutf to 5.3.0 (Node.js GitHub Bot) #53837 [d346833364] - deps: update ada to 2.9.0 (Node.js GitHub Bot) #53748 [ab8abb5367] - deps: upgrade npm to 10.8.2 (npm team) #53799 [1ad664905a] - deps: update nbytes and add update script (Yagiz Nizipli) #53790 [a66f11e798] - deps: update googletest to 34ad51b (Node.js GitHub Bot) #53157 [9bf61d6a0d] - deps: update googletest to 305e5a2 (Node.js GitHub Bot) #53157 [8542ace488] - deps: V8: cherry-pick 9ebca66a5740 (Chengzhong Wu) #53755 [29a734c21d] - deps: V8: cherry-pick e061cf9970d9 (Joyee Cheung) #53755 [c7624af44a] - deps: update c-ares to v1.32.1 (Node.js GitHub Bot) #53753 [bbcec9e129] - deps: update minimatch to 9.0.5 (Node.js GitHub Bot) #53646 [76032fd980] - deps: update c-ares to v1.32.0 (Node.js GitHub Bot) #53722 [26386046ad] - doc: move MylesBorins to emeritus (Myles Borins) #53760 [362875bda0] - doc: add Rafael to the last security release (Rafael Gonzaga) #53769 [a1a5ad848d] - doc: use mock.callCount() in examples (Sébastien Règne) #53754 [bb960c5471] - doc: clarify authenticity of plaintexts in update (Tobias Nießen) #53784 [5dd3018eb4] - doc: add option to have support me link (Michael Dawson) #53312 [0f95ad3d7d] - doc: add OpenSSL security level to TLS docs (Afanasii Kurakin) #53647 [2d92ec2831] - doc: update scroll-padding-top to 4rem (Cloyd Lau) #53662 [933359a786] - doc: mention v8.setFlagsFromString to pm (Rafael Gonzaga) #53731 [e17c2618e3] - doc: remove the last <pre> tag (Claudio W) #53741 [7f18a5f47a] - doc: exclude voting and regular TSC from spotlight (Michael Dawson) #53694 [df3dcd1bd1] - doc: fix releases guide for recent Git versions (Michaël Zasso) #53709 [50987ea833] - doc: require node:process in assert doc examples (Alfredo González) #53702 [fa58d01497] - doc: add additional explanation to the wildcard section in permissions (jakecastelli) #53664 [28bf1e48ef] - doc: mark NODE_MODULE_VERSION for Node.js 22.0.0 (Michaël Zasso) #53650 [1cc0b41f00] - doc: include node.module_timer on available categories (Vinicius Lourenço) #53638 [d224e9eab5] - doc: fix module customization hook examples (Elliot Goodrich) #53637 [2cf60964e6] - doc: fix doc for correct usage with plan & TestContext (Emil Tayeb) #53615 [6df86ae056] - doc: remove some news issues that are no longer (Michael Dawson) #53608 [42b9408f3e] - doc: add issue for news from ambassadors (Michael Dawson) #53607 [2d1ff91953] - doc: add esm example for os (Leonardo Peixoto) #53604 [de99d69d75] - doc: clarify usage of coverage reporters (Eliphaz Bouye) #53523 [519c328dcf] - doc: document addition testing options (Aviv Keller) #53569 [c6166cdfe4] - doc: clarify that fs.exists() may return false for existing symlink (Tobias Nießen) #53566 [9139ab2848] - doc: note http.closeAllConnections excludes upgraded sockets (Rob Hogan) #53560 [19b3718ee1] - doc, meta: add PTAL to glossary (Aviv Keller) #53770 [80c1f5ce8a] - doc, typings: events.once accepts symbol event type (René) #53542 [1a21e0f61e] - esm: improve defaultResolve performance (Yagiz Nizipli) #53711 [262f2cb3b6] - esm: remove unnecessary toNamespacedPath calls (Yagiz Nizipli) #53656 [e29c9453a9] - esm: move hooks test with others (Geoffrey Booth) #53558 [8368555289] - fs: add v8 fast api to closeSync (Yagiz Nizipli) #53627 [628a539810] - fs: reduce throwing unnecessary errors on glob (Yagiz Nizipli) #53632 [076e82ca40] - fs: move ToNamespacedPath dir calls to c++ (Yagiz Nizipli) #53630 [128e514d81] - fs: improve error performance of fs.dir (Yagiz Nizipli) #53667 [603c2c5c08] - fs: fix typings (Yagiz Nizipli) #53626 [1367c5558e] - (SEMVER-MINOR) http: expose websockets (Natalia Venditto) #53721 [7debb6c36e] - http: remove prototype primordials (Antoine du Hamel) #53698 [b13aea5698] - http, readline: replace sort with toSorted (Benjamin Gruenbaum) #53623 [1397f5d9f4] - http2: remove prototype primordials (Antoine du Hamel) #53696 [f57d3cee2c] - lib: make navigator not runtime-lookup process.version/arch/platform (Jordan Harband) #53765 [0a01abbd45] - lib: refactor platform utility methods (Daniel Bayley) #53817 [afe7f4f819] - lib: remove path.resolve from permissions.js (Rafael Gonzaga) #53729 [cbe77b30ca] - lib: move ToNamespacedPath call to c++ (Yagiz Nizipli) #53654 [0f146aac2c] - lib: make navigator properties lazy (James M Snell) #53649 [0540308bd7] - lib: add toJSON to PerformanceMeasure (theanarkh) #53603 [b31394920d] - (SEMVER-MINOR) lib,src,test,doc: add node:sqlite module (Colin Ihrig) #53752 [1a7c2dc5ea] - meta: remove redudant logging from dep updaters (Aviv Keller) #53783 [ac5d7b709d] - meta: change email address of anonrig (Yagiz Nizipli) #53829 [085ec5533c] - meta: add node_sqlite.c to PR label config (Aviv Keller) #53797 [c68d873e99] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #53758 [5ae8ea489d] - meta: use HTML entities in commit-queue comment (Aviv Keller) #53744 [ecd8fceb68] - meta: move regular TSC member to emeritus (Michael Dawson) #53693 [05058f9809] - meta: bump codecov/codecov-action from 4.4.1 to 4.5.0 (dependabot[bot]) #53675 [e272ffa3d6] - meta: bump mozilla-actions/sccache-action from 0.0.4 to 0.0.5 (dependabot[bot]) #53674 [a39407560c] - meta: bump github/codeql-action from 3.25.7 to 3.25.11 (dependabot[bot]) #53673 [e4ce92ee31] - meta: bump actions/checkout from 4.1.6 to 4.1.7 (dependabot[bot]) #53672 [4cf98febe7] - meta: bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (dependabot[bot]) #53671 [c28af95bf5] - meta: bump step-security/harden-runner from 2.8.0 to 2.8.1 (dependabot[bot]) #53670 [dd2157bc83] - meta: move member from TSC regular to emeriti (Michael Dawson) #53599 [508abfe178] - meta: warnings bypass deprecation cycle (Benjamin Gruenbaum) #53513 [3c5ec839e3] - meta: prevent constant references to issues in versioning (Aviv Keller) #53564 [aa7df9551d] - module: add __esModule to require()'d ESM (Joyee Cheung) #52166 [8743c4d65a] - (SEMVER-MINOR) path: add matchesGlob method (Aviv Keller) #52881 [77936c3d24] - (SEMVER-MINOR) process: port on-exit-leak-free to core (Vinicius Lourenço) #53239 [5e4ca9fbb6] - src: update outdated references to spec sections (Tobias Nießen) #53832 [c22d9d5167] - src: use Maybe<void> in ManagedEVPPKey (Tobias Nießen) #53811 [d41ed44f49] - src: move loadEnvFile toNamespacedPath call (Yagiz Nizipli) #53658 [dc99dd391f] - src: fix error handling in ExportJWKAsymmetricKey (Tobias Nießen) #53767 [ab1e03e8cd] - src: use Maybe<void> in node::crypto::error (Tobias Nießen) #53766 [9bde9b254d] - src: fix implementation of PropertySetterCallback (Igor Sheludko) #53576 [021e2cf40f] - src: remove unused ContextifyContext::WeakCallback (Chengzhong Wu) #53517 [87121a17c4] - src: fix typo in node.h (Daeyeon Jeong) #53759 [94c7054c8d] - src: document the Node.js context embedder data (Joyee Cheung) #53611 [c181940e83] - src: zero-initialize data that are copied into the snapshot (Joyee Cheung) #53563 [8cda2db64c] - Revert "src: make sure that memcpy-ed structs in snapshot have no padding" (Joyee Cheung) #53563 [81767f6089] - src: fix Worker termination when '--inspect-brk' is passed (Daeyeon Jeong) #53724 [a9db553935] - src: refactor embedded entrypoint loading (Joyee Cheung) #53573 [3ab8aba478] - src: do not get string_view from temp string (Cheng) #53688 [664bf6c28f] - src: replace kPathSeparator with std::filesystem (Yagiz Nizipli) #53063 [cc1f49751a] - src: move FromNamespacedPath to path.cc (Yagiz Nizipli) #53540 [e43a4e07ec] - src: use starts_with in node_dotenv.cc (Yagiz Nizipli) #53539 [19488fd4ce] - src,test: further cleanup references to osx (Daniel Bayley) #53820 [4bf62f6cbd] - stream: improve inspector ergonomics (Benjamin Gruenbaum) #53800 [82d88a83f8] - (SEMVER-MINOR) stream: pipeline wait for close before calling the callback (jakecastelli) #53462 [53a7dd7790] - test: update wpt test (Mert Can Altin) #53814 [bc480902ab] - test: update WPT WebIDL interfaces (Filip Skokan) #53720 [d13153d90f] - test: un-set inspector-async-hook-setup-at-inspect-brk as flaky (Abdirahim Musse) #53692 [ac9c2e6bf2] - test: use python3 instead of python in pummel test (Mathis Wiehl) #53057 [bac28678e6] - test: do not assume cwd in snapshot tests (Antoine du Hamel) #53146 [41e106c0c6] - test: use Set.difference() (Richard Lau) #53597 [8aab680f66] - test: fix OpenSSL version checks (Richard Lau) #53503 [6aa4f0f266] - test: refactor, add assertion to http-request-end (jakecastelli) #53411 [fbc5cbb617] - test_runner: remove plan option from run() (Colin Ihrig) #53834 [c590828ad8] - test_runner: fix escaping in snapshot tests (Julian Kniephoff) #53833 [3a0fcbb17a] - test_runner: support glob matching coverage files (Aviv Keller) #53553 [e6a1eeb73d] - test_runner: support module detection in module mocks (Geoffrey Booth) #53642 [4d777de7d4] - tls: add setKeyCert() to tls.Socket (Brian White) #53636 [ab9adfc42a] - tls: remove prototype primordials (Antoine du Hamel) #53699 [03d378ffb9] - tools: update lint-md-dependencies (Node.js GitHub Bot) #53840 [06377b1b11] - tools: update eslint to 9.7.0 (Node.js GitHub Bot) #53839 [d6629a2d84] - tools: use v8_features.json to populate config.gypi (Cheng) #53749 [d3653fe8ac] - tools: update eslint to 9.6.0 (Node.js GitHub Bot) #53645 [1e930e93d4] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #53555 [317a13b30f] - tools: replace reference to NodeMainInstance with SnapshotBuilder (codediverdev) #53544 [0e25faea0a] - typings: add fs_dir types (Yagiz Nizipli) #53631 [7637f291be] - url: fix typo (KAYYY) #53827 [2c6548afd1] - url: reduce unnecessary string copies (Yagiz Nizipli) #53628 [0f2b57d1bc] - url: make URL.parse enumerable (Filip Skokan) #53720 [1300169f80] - url: add missing documentation for URL.parse() (Yagiz Nizipli) #53733 [c55e72ed8b] - util: fix crashing when emitting new Buffer() deprecation warning #53075 (Aras Abbasi) #53089 [5aa216320e] - v8: move ToNamespacedPath to c++ (Yagiz Nizipli) #53655 [9fd976b09d] - vm,src: add property query interceptors (Chengzhong Wu) #53517 [22ca334090] - (SEMVER-MINOR) worker: add postMessageToThread (Paolo Insogna) #53682 [5aecbefbd5] - worker: allow copied NODE_OPTIONS in the env setting (Joyee Cheung) #53596 Windows 32-bit Installer: https://nodejs.org/dist/v22.5.0/node-v22.5.0-x86.msi Windows 64-bit Installer: https://nodejs.org/dist/v22.5.0/node-v22.5.0-x64.msi Windows ARM 64-bit Installer: https://nodejs.org/dist/v22.5.0/node-v22.5.0-arm64.msi Windows 32-bit Binary: https://nodejs.org/dist/v22.5.0/win-x86/node.exe Windows 64-bit Binary: https://nodejs.org/dist/v22.5.0/win-x64/node.exe Windows ARM 64-bit Binary: https://nodejs.org/dist/v22.5.0/win-arm64/node.exe macOS 64-bit Installer: https://nodejs.org/dist/v22.5.0/node-v22.5.0.pkg macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-darwin-arm64.tar.gz macOS Intel 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-darwin-x64.tar.gz Linux 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-x64.tar.xz Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-ppc64le.tar.xz Linux s390x 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-s390x.tar.xz AIX 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-aix-ppc64.tar.gz ARMv7 32-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-armv7l.tar.xz ARMv8 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-arm64.tar.xz Source Code: https://nodejs.org/dist/v22.5.0/node-v22.5.0.tar.gz Other release files: https://nodejs.org/dist/v22.5.0/ Documentation: https://nodejs.org/docs/v22.5.0/api/ SHASUMS -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 e55511ccce9e25789d80135882fe10301f5f4cf018c3ab48bd3b6b7dcfb80a71 node-v22.5.0-aix-ppc64.tar.gz 173bc126eb7ce24c4a1b2fdafd32221894358a854fa73f94fcf772094d156ef9 node-v22.5.0-arm64.msi dd484dc9b461aa78cfea3f48d540b4ae600efb07c7482893ee9d260dd3686614 node-v22.5.0-darwin-arm64.tar.gz 2550d7feb00e7e0a569d43a43c4827b038f5eeff3645e88660023fa177a763e2 node-v22.5.0-darwin-arm64.tar.xz a4409511fd1008a75f16b42a2d5694f3622f361eafa59bec5bab1928389754a2 node-v22.5.0-darwin-x64.tar.gz 64841cfd0a8e9dfb4425442d1336c076b4d5248de974dfa762bdb932c81d421c node-v22.5.0-darwin-x64.tar.xz 713f6a77ada0577a2ae6aff3ff7986874706efbc0d4e6c1c3082208eafac1479 node-v22.5.0-headers.tar.gz 29c11bd809890de264b1100264ecf6f2022952553fed5420f0a2c6a7ece9259b node-v22.5.0-headers.tar.xz f64000dcdb279f056dc574db13494d61fd85f2928c99ffa2e6dd2e5843ce6299 node-v22.5.0-linux-arm64.tar.gz 67c8c3b243e90a8cb8a47fe87bdc8f787fd842df33dc6132e484893bdb635e75 node-v22.5.0-linux-arm64.tar.xz 73b4d63ca3fc958910a6a7155ad7f584c60d26998ef36ebadcde7f0fae5c97fc node-v22.5.0-linux-armv7l.tar.gz 1d7245aff4942f47cd949858362ea1b5f138900d86989308c510b957e5d065eb node-v22.5.0-linux-armv7l.tar.xz 8e0bde5839c81cd2c6e536fe5e2f4de58ee644c92e1cddd4f5e29365b716d798 node-v22.5.0-linux-ppc64le.tar.gz c7978108c925acfd420a4f67dcc856b43fcabc4b1d0b9f1ddbe7f9746f8488f7 node-v22.5.0-linux-ppc64le.tar.xz 73af14a5da0eda93abe1beb8b30278ca88f49ba3699bacb218a062d19a6de0aa node-v22.5.0-linux-s390x.tar.gz 1022bd1d761da80444d173653e1e6576a7d46a48c031c69b3444f01629b277d5 node-v22.5.0-linux-s390x.tar.xz f1a2eadec1f7ae92a98252eda0579b581d9a592792a1a3c391a073b38d5f036c node-v22.5.0-linux-x64.tar.gz 1b8b7db45ff5ef9ac82a9d92c276408b0fcfdb44f322360bdb02d156b5442b46 node-v22.5.0-linux-x64.tar.xz 63ebc337186168a1474838efeaa1bbe3ed5ca2d8a6d64dc6b2f433a5614686e8 node-v22.5.0-win-arm64.7z a2cb4dd4cb49a8bcddc9c51574b82615816205a3e074f254c2e3bfa5045aca4d node-v22.5.0-win-arm64.zip 00a8043372ed1a8565f3772337690421b64904ecee7347d9c31d7cf3663fbde8 node-v22.5.0-win-x64.7z 9523ca091931a50c4fb93e001c9d11033e5440e92122c93008e6e16ff15660e5 node-v22.5.0-win-x64.zip 72756432d58cfa863f5dfe7f92d180c7fee1608859af436948e4c2c4738163cd node-v22.5.0-win-x86.7z 43b1b6afc62ecb6fbd9518b3173aa92348c1aa3c8ec059ca505c00da7ea5bac2 node-v22.5.0-win-x86.zip f273c7e2e013ebd1e9f3498ca5608af857eb385426e6179e9a889b065b63686c node-v22.5.0-x64.msi 4fa9542aba7098c33c2244b728ec0fa67d71e52dee2a7a4bc9e10218f8cf5cea node-v22.5.0-x86.msi 71c80417cdffc34ec4a5b8f2814513d7cf0ff6eceaee5d3ecd5470ceb0d55194 node-v22.5.0.pkg 8327234c161abd9d8768537404258389adb4c7da02cda7d055d457ceb3ff9bc1 node-v22.5.0.tar.gz 5a86238f00393716a03cd304f7c63f4c27144889d05a3938bb0f242c8d29d62f node-v22.5.0.tar.xz 076e3728466fe9275f2169ecd434561a83625181f51517f345661158e853d754 win-arm64/node.exe 30e63a6726cda6539eeb37c311adf915bccd5c1462723b97a6c07ac91e8ae728 win-arm64/node.lib f0e6767bce59e516c4bbb47b8cfec7afe78de9ac32a386f368b9f5aed1ca05f1 win-arm64/node_pdb.7z 3e65d7873316d209c3bb0d50d6cc770cbec305382293b8a65bd8c76351e888d9 win-arm64/node_pdb.zip 26e7ac93a231cc04a2c93821d99455bd5ab5682ce0db3930ee4e33228b4750b5 win-x64/node.exe c4d08d45267da3625a30730bf5c8e41518f25d9809179feb267f1b393f5c5f05 win-x64/node.lib 4d4f62c9a811a0f35c507fd447432e020f03a951055aec331e7fbf7fd80204ef win-x64/node_pdb.7z 3d86182574d020069b0ad5576c9974364d37365505ca1128cbfd764c24a5aa73 win-x64/node_pdb.zip c572a54a3acf1bee443744b917ed7bab34664325083a4204cbbf98e2feb35160 win-x86/node.exe fc3bf3c1e561da1e1c152be9aa5ed1bce8d263a5124841a4ba41ebc37c727f3e win-x86/node.lib 700a57520d462dc03c1399e1b6912805fbc6d54678853dca1f725c5c59bfab6e win-x86/node_pdb.7z 0750c7973c03513fc7658f9fc784ac80472853e24a48582558d170a0ae37cc7b win-x86/node_pdb.zip -----BEGIN PGP SIGNATURE----- iQGzBAEBCAAdFiEEiQwI24V5Fi/uDfnbi+q0389VXvQFAmaX67UACgkQi+q0389V XvTKGAv/fY/yKxULLdeRomBN3KmU1WwGFLtxdx5RhAWMMcFBZWtfrkpbAdNszvP2 Ig3I7vFE4i9bWkEExm6sJEz+8eTdmGsi0P8oQxG9GZcV6PfkH9GAP1XK+QxWIbmz dNR9IYkQzl3k9zDfTLGBGb5JbPvUYW1iIYPtO77UEm6Yv253u8oAMUcObPGfAaRK Ho8S+o5CtI0dztISUxOKQn9tn+UBwJBhekCRZLz/0aZzQd7Orktl4AIwUXul6xpf R/2H8ofHz6RtZ0Ne1MIizradcw8pGdC4bLEeIHEMT64L+bQXmV0VDtV9ehefAkvz cP8hGnrPuLuDNnhdbplnM7W9+OuRbrJYg5oxymmsrV8oJHMUi4LuxEutXoIXBOCb z8JNEg4fd2tD0xX7tybLiJIg8uWM1CJutzt+vHs5HtWHvjL+OiL3X5VDLZQdHB88 xq6mns91saFtQI4P4zmzxwL5K+0o0KCQhfmBpEoDnQfDkXjCI0cP+GocLonx2Lz1 JJHsOztu =9PDN -----END PGP SIGNATURE----- PreviousNode.js 22.5.1 (Current)NextNode.js 22.4.1 (Current)