Popular: Data updated November 11, 2026

Categories

Internet1,405
Communication327
Audio & video929
Graphics & design563
Office & productivity1,164
Developer tools3,260
AI tools596
Security & privacy405
System tools3,170
Games542
Education & science240
Network & IT292

Node.js 15 15.9.0 download

Run JavaScript Everywhere

This is an older version. The current version is 15.14.0. Node.js 15 15.14.0 · Released:

Installer files 15.9.0

ArchitectureTypeScopeFile sizeDownloadSHA256
64-bit MSI All users — nodejs.org VirusTotal
64-bit ZIP → Portable — — nodejs.org VirusTotal
32-bit MSI All users — nodejs.org VirusTotal
32-bit ZIP → Portable — — nodejs.org VirusTotal

Link and SHA256 come from the Windows Package Manager community manifest. Compare the hash of the downloaded file before running it.

Release notes

Notable Changes
- crypto:
- add keyObject.export() 'jwk' format option (Filip Skokan) #37081
- deps:
- upgrade to libuv 1.41.0 (Colin Ihrig) #37360
- doc:
- add dmabupt to collaborators (Xu Meng) #37377
- refactor fs docs structure (James M Snell) #37170
- fs:
- add fsPromises.watch() (James M Snell) #37179
- use a default callback for fs.close() (James M Snell) #37174
- add AbortSignal support to watch (Benjamin Gruenbaum) #37190
- perf_hooks:
- introduce createHistogram (James M Snell) #37155
- stream:
- improve Readable.from error handling (Benjamin Gruenbaum) #37158
- timers:
- introduce setInterval async iterator (linkgoron) #37153
- tls:
- add ability to get cert/peer cert as X509Certificate object (James M Snell) #37070
Commits
- [d0f1ff53ff] - async_hooks: set unhandledRejection async context (Sajal Khandelwal) #37281
- [c160d88c9e] - buffer: add @@toStringTag to Blob (Colin Ihrig) #37336
- [8487184457] - child_process: fix bad abort signal leak (Nitzan Uziely) #37257
- [e28ea89b1a] - crypto: fix subtle.importKey JWK OKP public key import (Filip Skokan) #37255
- [55fd6b6611] - crypto: avoid infinite loops in prime generation (Tobias Nießen) #37212
- [9dac99a11a] - crypto: fix and simplify prime option validation (Tobias Nießen) #37164
- [3e2746ff63] - crypto: remove webcrypto "DSA" JWK Key Type operations (Filip Skokan) #37203
- [011910b424] - (SEMVER-MINOR) crypto: add keyObject.export() 'jwk' format option (Filip Skokan) #37081
- [c0eadef495] - deps: upgrade to libuv 1.41.0 (Colin Ihrig) #37360
- [50e81ba0b8] - deps: V8: cherry-pick 0c8b6e415c30 (Matin Zadehdolatabad) #37276
- [d1c1724c69] - deps: upgrade npm to 7.5.3 (Ruy Adorno) #37283
- [20c65b00c2] - deps: V8: backport dfcf1e86fac0 (Michaël Zasso) #37245
- [e63b380f76] - deps: upgrade npm to 7.5.2 (Ruy Adorno) #37191
- [d808db2732] - doc: add dmabupt to collaborators (Xu Meng) #37377
- [dd054ca37f] - doc: optimize HTML rendering (Antoine du Hamel) #37301
- [c188466a18] - doc: fix quotes in stream docs (Tobias Nießen) #37269
- [f5e4625468] - doc: fix backticks in crypto API docs (Tobias Nießen) #37269
- [e2a2bab44e] - doc: link PACKAGE_EXPORTS_RESOLVE to ESM section (Utku Gultopu) #37135
- [1e99175e01] - doc: alphabetize crypto.* methods (Rich Trott) #37353
- [392c86d38b] - doc: use sentence case in benchmark doc (Rich Trott) #37351
- [62b2648a96] - doc: apply sentence-consistently in C++ style guide (Rich Trott) #37350
- [189ce399da] - doc: apply sentence case to release doc headers (Rich Trott) #37349
- [610b29b8bd] - doc: fix performanceEntry.flags style format (Cheng Liu) #37274
- [85b1476f1d] - doc: fix typo in deprecations.md (marsonya) #37282
- [f253cb9303] - doc: fix typo in buffer.md (marsonya) #37268
- [804e7ae713] - doc: add version metadata for packages features (Antoine du Hamel) #37289
- [cdd2fe5651] - doc: fix typo in /api/dns.md (marsonya) #37312
- [7d8fd3f576] - doc: refactor fs docs structure (James M Snell) #37170
- [facf3a5c23] - doc: fix description of hasSubscribers (Tobias Nießen) #37324
- [3464c9f007] - doc: discourage error event (Benjamin Gruenbaum) #37264
- [85bed2ec26] - doc: fix misnamed SHASUMS256.txt name in README.md (marsonya) #37260
- [cd50e93307] - doc: warn about using strings as inputs in crypto (Tobias Nießen) #37248
- [5a4288ebb6] - doc: fix typo in crypto.md (marsonya) #37279
- [0e887caf32] - doc: fix typo in console.md (marsonya) #37279
- [47c4f1fc54] - doc: use sentence case in README headers (Rich Trott) #37251
- [7da1c9b219] - doc: use sentence case for headers in BUILDING.md (Rich Trott) #37250
- [ebf3597db1] - doc: rename N-API to Node-API (Gabriel Schulhof) #37259
- [760f126adb] - doc: mark Certificate methods as static, add missing KeyObject.from (Filip Skokan) #37198
- [aebe532967] - doc: consistent webcrypto node.keyObject format (Filip Skokan) #37200
- [596bfb36a0] - doc: mention CryptoKey in port.postMessage() (Filip Skokan) #37196
- [0702d60def] - doc: fix webcrypto HMAC generateKey example (Filip Skokan) #37197
- [8a254058f5] - doc: fix accommodate typos (Colin Ihrig) #37229
- [5906e85ce2] - doc: fix version number for DEP006 (Antoine du Hamel) #37231
- [52c40c7a48] - doc: fix CHANGELOG_ARCHIVE table of contents (Antoine du Hamel) #37232
- [eb08afdf24] - doc: fix typo in globals.md (Darshan Sen) #37228
- [b87c0d6c16] - doc: fix typo in cli.md (Kalvin Vasconcellos) #37214
- [3f815d93bf] - doc: fix pr-url for DEP0148 (Antoine du Hamel) #37205
- [ff02e5e12c] - doc: fix 404 links in module.md (Antoine du Hamel) #37202
- [67c9a8e176] - doc: improve promise terminology (Benjamin Gruenbaum) #37181
- [15804e0b3f] - errors: align source-map stacks with spec (Benjamin Coe) #37252
- [88d3f74c85] - (SEMVER-MINOR) fs: add fsPromises.watch() (James M Snell) #37179
- [c30245072a] - fs: allow passing negative zero fd (Darshan Sen) #37123
- [655d19638a] - (SEMVER-MINOR) fs: use a default callback for fs.close() (James M Snell) #37174
- [acd087dffb] - (SEMVER-MINOR) fs: add AbortSignal support to watch (Benjamin Gruenbaum) #37190
- [f5d1bf9d0e] - http: explain the possibilty of refactor unused argument (Qingyu Deng) #37275
- [d63ac28a9a] - http: explain the unused argument in IncomingMessage._read (Qingyu Deng) #37275
- [4cdc5ea823] - http: fix ClientRequest unhandled errors (Robert Nagy) #36970
- [c6198fddc7] - lib: simplify check in child_process (Darshan Sen) #37367
- [f6f9af6a59] - lib: fix WebIDL object and dictionary type conversion (ExE Boss) #37047
- [acabe08b10] - lib: add weak event handlers (Benjamin Gruenbaum) #36607
- [3db1b30732] - meta: update README releases section (Zuzana Svetlikova) #37318
- [d96a97a2b9] - module: make synthetic module evaluation steps return a Promise to support top level await (Daniel Clark) #37300
- [a693baa0cb] - module: use optional chaining in cjs/loader.js (Darshan Sen) #37238
- [061939d2f6] - (SEMVER-MINOR) node-api: allow retrieval of add-on file name (Gabriel Schulhof) #37195
- [c4faa39768] - (SEMVER-MINOR) perf_hooks: introduce createHistogram (James M Snell) #37155
- [799b2d5275] - policy: fix cascade getting scope (Bradley Meck) #37298
- [6d53e797d7] - repl: refactor to avoid unsafe array iteration (Antoine du Hamel) #37345
- [3fee5b2219] - repl: add auto‑completion for dynamic import calls (ExE Boss) #37178
- [c3778343aa] - repl: refactor to avoid unsafe array iteration (Antoine du Hamel) #37188
- [e28fa6c3fc] - src: fix return type of method in string_search.h (Darshan Sen) #37167
- [42cc33cc48] - src: add mutex to ManagedEVPPKey class (Daniel Bevenius) #36825
- [1a9bcdf1d9] - src: refactor v8 binding (Joyee Cheung) #37112
- [54d36b00af] - src: rename binding_data_name to type_name in BindingData (Joyee Cheung) #37112
- [3079a78428] - src: avoid implicit type conversions (Michaël Zasso) #37149
- [a6053dc14a] - src: add context for TODO comment in env.cc (Yash Ladha) #37140
- [354df9e8a1] - src: use make_shared for safe allocation (Yash Ladha) #37139
- [337b4e7540] - src: put (de)serialization code into node_snapshotable.h/cc (Joyee Cheung) #37114
- [2a5f67b381] - src: refactor bookkeeping of bootstrap status (Joyee Cheung) #37113
- [48ce1eb364] - src: fix warning in string_search.h (Darshan Sen) #37146
- [bfe0b46d92] - src: simplify calls to BN_bin2bn in prime gen (Tobias Nießen) #37169
- [9946c1137e] - src: read exactly two tokens from Linux THP sysfs config (James Addison) #37065
- [1fea05149a] - (SEMVER-MINOR) stream: improve Readable.from error handling (Benjamin Gruenbaum) #37158
- [d2a487e640] - Revert "stream: fix .end() error propagation" (Matteo Collina) #37060
- [b5692b4b06] - test: fix test-doctool-html (Antoine du Hamel) #37397
- [b09d21b06b] - test: enable no-restricted-syntax rule for test-timers-promisified (Rich Trott) #37357
- [1fc8307138] - test: re-implement promises.setInterval() test robustly (Rich Trott) #37230
- [8483de4da8] - test: only run prime test with supported OpenSSL (Tobias Nießen) #37212
- [48a634e514] - test: rename n-api to node-api (Gabriel Schulhof) #37217
- [51575252f5] - test: remove flaky designation for test-http2-large-file (Rich Trott) #37156
- [13fe17c4ef] - test: split heap snapshot limit tests (Rich Trott) #37189
- [dc38dd2c6f] - timers: fix unsafe array iteration (Darshan Sen) #37223
- [eb7ec1b257] - timers: remove flaky setInterval test (Nitzan Uziely) #37227
- [4ebe38b212] - (SEMVER-MINOR) timers: introduce setInterval async iterator (linkgoron) #37153
- [dc84c181c3] - (SEMVER-MINOR) tls: add ability to get cert/peer cert as X509Certificate object (James M Snell) #37070
- [2e1f1c6f3c] - tools: refactor prefer-primordials (Antoine du Hamel) #36018
- [b2b64113b1] - tools: update ESLint to 7.20.0 (Colin Ihrig) #37339
- [a483c284f3] - tools: fix lint-pr-url message (Antoine du Hamel) #37304
- [1ff375beb3] - tools: avoid pending deprecation in doc generator (Michaël Zasso) #37267
- [6db5e7958a] - tools: add GitHub Action linter for pr-url (Antoine du Hamel) #37221
- [d8d851ac5c] - tools: bump remark-present-lint-node from 2.0.0 to 2.0.1 (Rich Trott) #37270
- [eb0daaedf9] - tools: fix d8 macOS build (Michaël Zasso) #37211
- [745aad73dc] - tools: update ESLint to 7.19.0 (Colin Ihrig) #37159
- [676f696a99] - url: fix definitions of URL/SearchParams methods and accessors (ExE Boss) #36799
- [fbcab109de] - url: move URLSearchParams method definitions (ExE Boss) #36799
- [7c51cecbca] - util: use assert for unreachable code (Rich Trott) #37249
- [66a14d3992] - vm: add importModuleDynamically option to compileFunction (Gus Caplan) #35431
- [05a16e7259] - worker: refactor to avoid unsafe array iteration (Antoine du Hamel) #37346

https://github.com/nodejs/node/releases/tag/v15.9.0

Most popular in IDEs & code editors

See all
  1. RStudioRStudio is an integrated development environment (IDE) for R.
  2. Node.js (LTS)Run JavaScript Everywhere
  3. Apache NetBeansDevelopment Environment, Tooling Platform and Application Framework.
  4. VSCodiumVSCodium is a community-driven, freely-licensed and telemetry-free rebuilt of Microsoft's Visual Studio Code.
  5. HaxeHaxe is an open source high-level strictly-typed programming language with a fast optimizing cross-compiler.
  6. ThonnyThonny is a Python IDE meant for learning programming.
  7. GDevelopThe fastest, easiest, most powerful no-code game engine.
  8. mkcertA simple zero-config tool to make locally trusted development certificates with any names you'd like.
  9. ProcessingA language and environment for creative coding
  10. Android StudioThe official Integrated Development Environment (IDE) for Android app development.

More from Node.js Foundation

See all

Tags

Share