Node.js Blog

Node.js 26.4.0 (Current)

Notable Changes

  • doc: Updated blockList stability status to release candidate (alphaleadership) #63050
  • fs: Support caller-supplied readFile() buffers (Matteo Collina) #63634
  • http: Close pre-request sockets in closeIdleConnections (semimikoh) #63470
  • loader: Implement package maps (Maël Nison) #62239
  • net: Support TCP_KEEPINTVL and TCP_KEEPCNT in setKeepAlive (Guy Bedford) #63825
  • tls: Add certificateCompression option (Tim Perry) #62217
  • vfs: Dispatch node:fs/promises to mounted VFS instances (Matteo Collina) #63537
  • vfs: Add minimal node:vfs subsystem (Matteo Collina) #63115

Commits

  • [c7eb83b46a] - benchmark: add child_process async path baselines (Yagiz Nizipli) #63929
  • [066fff17a5] - benchmark: remove old alias usage in ffi benchmarks (Anna Henningsen) #63666
  • [509cd1b94f] - buffer: optimize Buffer.prototype.copy (Robert Nagy) #63828
  • [86e651bbd0] - buffer: use simdutf for two-byte utf8 byteLength (Mert Can Altin) #63639
  • [d3f4ed9015] - build: suppress compiler warnings for histogram (Richard Lau) #63980
  • [82dd7ddbe6] - build: add QUIC CI job for PRs matching QUIC related paths (Tim Perry) #63875
  • [1124c0652d] - build: remove redundant intermediate node_aix_shared (Chengzhong Wu) #63747
  • [e510ee8087] - build: build codecache and snapshot with libnode (Chengzhong Wu) #63626
  • [5b583dace5] - build: enable maglev by default on Linux ppc64le (Richard Lau) #63474
  • [a2324246b4] - build: remove duplicated node_use_sqlite and node_use_ffi conditions (Chengzhong Wu) #63629
  • [2a467a5f69] - Revert "build, doc: generate node.1 with doc-kit" (Antoine du Hamel) #64091
  • [e01dec45b8] - build, doc: generate node.1 with doc-kit (Aviv Keller) #62044
  • [2ab9848fe4] - child_process: pass spawn options to the binding positionally (Yagiz Nizipli) #63930
  • [04c04c8b5c] - child_process: serialize advanced IPC messages natively (Yagiz Nizipli) #63933
  • [1eef57293d] - crypto: support non-byte WebCrypto lengths and cSHAKE (Filip Skokan) #63988
  • [788a66e147] - crypto: share WebCrypto method and usage helpers (Filip Skokan) #63975
  • [f9fdce3f46] - crypto: use EVP_MAC for HMAC on OpenSSL >=3 (Filip Skokan) #63942
  • [7e9ca87e58] - crypto: make webcrypto aliasKeyFormat directional (Filip Skokan) #63910
  • [656e57ebbf] - crypto: fix unhandled error in Hash._transform (Haram Jeong) #63261
  • [65536f0d98] - crypto: refactor keyObject.toCryptoKey() and SubtleCrypto.getPublicKey() (Filip Skokan) #63622
  • [978f1d2bcc] - crypto: handle cipher context allocation failures (Tian Teng) #63542
  • [5551e8f773] - crypto: deduplicate X509 subject matching logic (Tobias Nießen) #63644
  • [57ae87640a] - crypto: fix warnings in test_node_crypto.cc (Maya Lekova) #63490
  • [9984b05dff] - crypto: coerce -0 to +0 before native calls (Filip Skokan) #63556
  • [88011a3689] - crypto,tls: do not ignore BN_get_word error (Tobias Nießen) #63895
  • [9a3393d14f] - debugger: lazily wait for initial break output (Trivikram Kamat) #63969
  • [b0bfcb9c59] - debugger: defer probe pause handling until startup (Trivikram Kamat) #63608
  • [8516003953] - debugger: await initialization after run and restart (Trivikram Kamat) #63607
  • [4438cb5284] - debugger: add --max-hit option to probe mode (Joyee Cheung) #63704
  • [238b54ed2a] - debugger: add more logs to probe mode (Joyee Cheung) #63663
  • [bbef54b413] - deps: libffi: cherry-pick 9ca53a19833d (Anthony Green) #64040
  • [9761385dbd] - deps: update libffi to 3.6.0 (Node.js GitHub Bot) #64040
  • [373ec2d092] - deps: update acorn to 8.17.0 (Node.js GitHub Bot) #63901
  • [e44b5d487e] - (SEMVER-MINOR) deps: update OpenSSL build config to support compression (Tim Perry) #62217
  • [3ed287a2e2] - deps: upgrade npm to 11.17.0 (npm team) #63857
  • [b1b597c797] - deps: add ngtcp2_fmt.c to build configuration (ngtcp2.gyp) (沈鸿飞) #63821
  • [0bf8e12305] - deps: V8: add CopyArrayBufferBytes API (Robert Nagy) #63828
  • [e49d7301a5] - deps: update ngtcp2 to 1.23.0 (Node.js GitHub Bot) #63777
  • [e5c079004b] - deps: update nghttp3 to 1.16.0 (Node.js GitHub Bot) #63776
  • [d599fa2346] - deps: update googletest to 7140cd416cecd7462a8aae488024abeee55598e4 (Node.js GitHub Bot) #63775
  • [bc09f1508c] - deps: update sqlite to 3.53.2 (Node.js GitHub Bot) #63774
  • [60787746c4] - deps: update zlib to 1.3.2.1-motley-3246f1b (Node.js GitHub Bot) #63773
  • [971af104f1] - deps: update amaro to 1.1.10 (Node.js GitHub Bot) #63670
  • [e17f665444] - deps: update googletest to 8736d2cd5c1dcba41170ed2fddca14021d4916c3 (Node.js GitHub Bot) #63669
  • [7591949457] - dgram: add synchronous Socket connectSync() (Guy Bedford) #63932
  • [d75222d7cb] - dgram: add synchronous Socket prototype.bindSync() (Guy Bedford) #63838
  • [0cf8342ae2] - dns: coerce -0 to +0 in lookup and resolver inputs (Filip Skokan) #63556
  • [e068299320] - doc: update gcc toolchains to gcc-13 and g++-13 (Louie Llaneta) #64018
  • [65178bdcf3] - doc: add aduh95 to last security release steward (Antoine du Hamel) #63981
  • [83eedfe85b] - doc: fix typo in util.md (Daijiro Wachi) #63961
  • [54948c78e7] - doc: clarify callback exceptions (Matteo Collina) #63939
  • [205d0a57f2] - doc: fix incorrect test runner mock examples (Kimaswa Emmanuel Yusufu) #63656
  • [44809b176c] - doc: clarify fromReadable() duck-typed contract (Trivikram Kamat) #63682
  • [9cb15fcc85] - doc: fix typo in cli.md (Daijiro Wachi) #63883
  • [394d0bb928] - doc: fix typo in vm.md (Daijiro Wachi) #63881
  • [59b7be8193] - doc: fix typo in packages.md (Daijiro Wachi) #63882
  • [33c236cea9] - doc: fix a/an article typos in module, util, and dns (Daijiro Wachi) #63766
  • [30595da67b] - doc: update npm supported versions link (hojeong park) #63672
  • [5919ba7e97] - doc: fix AES-OCB IV length in SubtleCrypto.supports example (Anshika Jain) #63717
  • [51cab5cb72] - doc: add webstreams to args for pipeline from stream/promises (David Sanders) #63628
  • [ce85b2af88] - doc: fix "used to sent" → "used to send" in http2 (Daijiro Wachi) #63700
  • [298735e8df] - doc: mark Node.js 25 as End-of-Life (Antoine du Hamel) #63692
  • [56948518b9] - doc: clarify tty raw mode applies to input processing only (Muhammad Zeeshan) #63438
  • [32ff731248] - doc: add worker_threads history entries (Bob Put) #63545
  • [cde0daabcc] - (SEMVER-MINOR) doc: update blockList stability status to release candidate (alphaleadership) #63050
  • [d29483fc4f] - doc,crypto: mark argon2 and encap/decap as stable (Filip Skokan) #63924
  • [6e668331d9] - events: improve addAbortListener perf by caching options object (Raz Luvaton) #52367
  • [97aafe2519] - ffi: add fast support for almost all other platforms (Paolo Insogna) #63941
  • [f52cf5eeaa] - ffi: add experimental fast FFI call API for AArch64 and x86_64 (Paolo Insogna) #63068
  • [d9461fee05] - ffi: port semi-colon fix for riscv64 (and others) (Stewart X Addison) #63794
  • [4c8402e0a8] - fs: do not treat EPERM as ENOTEMPTY on Windows (Kirill Saied) #63709
  • [b78f5a7537] - (SEMVER-MINOR) fs: support caller-supplied readFile() buffers (Matteo Collina) #63634
  • [3d0097d489] - fs: prevent spurious recursive watch events on prefix siblings (Marco) #63095
  • [14d829cb3c] - fs: ignore deleted dirs in recursive watch scan (Trivikram Kamat) #63686
  • [ceba08a1ea] - fs: coerce -0 to +0 in mode flags and watch intervals (Filip Skokan) #63556
  • [6577d3b282] - http: avoid stream listeners on idle agent sockets (Matteo Collina) #64004
  • [417aacbc36] - (SEMVER-MINOR) http: close pre-request sockets in closeIdleConnections (semimikoh) #63470
  • [b7fd13a59a] - http2: retain header memory in session accounting (Matteo Collina) #63752
  • [e611ccd167] - inspector: fix inspector.close() documented behavior (Chengzhong Wu) #63837
  • [a44f51eef3] - lib: fix missing lazyDOMException import (Filip Skokan) #64033
  • [27cc4ec598] - lib: add lint rule to enforce use of kEmptyObject (Antoine du Hamel) #63790
  • [7ee31b0bf4] - lib: improve control abstraction coverage in frozen intrinsics (Renegade334) #63698
  • [078457839a] - lib: add Iterator global to primordials (Renegade334) #63698
  • [58837dc4dd] - lib: remove source map deadcode in type stripping (Chengzhong Wu) #63738
  • [e7513a8b9e] - lib: make Navigator#language getter throw on invalid this (Mohamed Sayed) #63601
  • [fbb108be7d] - (SEMVER-MINOR) loader: implement package maps (Maël Nison) #62239
  • [ea0b8e1dc2] - meta: bump github/codeql-action from 4.35.3 to 4.36.1 (dependabot[bot]) #63724
  • [ac90719532] - meta: bump actions/cache from 5.0.4 to 5.0.5 (dependabot[bot]) #62847
  • [3ed3de3062] - meta: bump actions/checkout from 6.0.2 to 6.0.3 (dependabot[bot]) #63726
  • [d08d57bf70] - meta: bump codecov/codecov-action from 6.0.0 to 6.0.1 (dependabot[bot]) #63725
  • [e748d192cf] - meta: bump cachix/cachix-action (dependabot[bot]) #63729
  • [10554eb131] - meta: bump actions/stale from 10.2.0 to 10.3.0 (dependabot[bot]) #63728
  • [791885f2af] - meta: bump step-security/harden-runner from 2.19.0 to 2.19.4 (dependabot[bot]) #63727
  • [32d9a407d9] - meta: bump cachix/install-nix-action from 31.10.5 to 31.10.6 (dependabot[bot]) #63723
  • [b97c7bed07] - module: enable existing machinery for deferred import of static modules (Maya Lekova) #63712
  • [4becad2117] - module: use file: URL as sourceURL for type-stripped CommonJS (Joyee Cheung) #63705
  • [c71c85b95f] - net: early TCP binding via synchronous net.BoundSocket (Guy Bedford) #63951
  • [45494d5a8a] - (SEMVER-MINOR) net: support TCP_KEEPINTVL and TCP_KEEPCNT in setKeepAlive (Guy Bedford) #63825
  • [3988efa1f3] - net: coerce -0 to +0 in BlockList prefixes (Filip Skokan) #63556
  • [484efd1c44] - quic: fix get_reader bug that dropped data on FIN (Tim Perry) #63946
  • [04a17fe6f0] - quic: expose QUIC certificates as JS X509Certificate, not raw handles (Tim Perry) #63191
  • [b62d5696dc] - quic: fix reader backpressure deadlock on idle connections (Tim Perry) #63950
  • [3f1c8d7453] - quic: fix broken listEndpoints export, test callbacks & nghttp3 include (Tim Perry) #63874
  • [d8538b9deb] - quic: impl. cb for http/3 settings/app. options (Marten Richter) #63558
  • [643b19716e] - quic: add listEndpoints API (James M Snell) #63536
  • [2bce35bea4] - sqlite: do not leave database open after failed open (Yagiz Nizipli) #63854
  • [394af52abb] - sqlite: fix stack-use-after-scope with function callback (ndossche) #63640
  • [10f03e5958] - src: omit unconvertible names in cjs_lexer::Parse (Yagiz Nizipli) #63943
  • [1723773d41] - src: keep global list of addon-provided cleanup hooks (Anna Henningsen) #63985
  • [ef12e9ea44] - src: guard OpenSSL compression header include (Filip Skokan) #64009
  • [48af8a6d8d] - src: handle empty MaybeLocal in cjs_lexer::Parse (Yagiz Nizipli) #63885
  • [2a672ee9e8] - src: fast path empty native immediate drain (Gürgün Dayıoğlu) #62969
  • [db6a31d1a1] - src: do not track weak BaseObjects as children of Realms (Anna Henningsen) #63842
  • [5fb837ff46] - src: allow tracking children in MemoryTracker with weak edges (Anna Henningsen) #63842
  • [6d22d373a9] - src: use C++14 deprecated attribute for NODE_DEPRECATED (Anna Henningsen) #63755
  • [7ac3fe1992] - src: add cleanup hooks to node::ObjectWrap (Anna Henningsen) #63642
  • [d82d369155] - src: fix edge case when deflateInit2() fails with Z_VERSION_ERROR (Nora Dossche) #63476
  • [03858d152b] - src: remove redundant handle_ field in ffi (Anna Henningsen) #63665
  • [1682264f6b] - src: add Latin1 fast path in StringBytes::Encode utf8 (Mert Can Altin) #63385
  • [cc29696acf] - stream: fix Writable.toWeb() desiredSize for non-object-mode (Matteo Collina) #62986
  • [d9967a25b2] - stream: handle falsy push writer fail reasons (Trivikram Kamat) #63569
  • [b53f8f75c9] - stream: reduce allocations on WHATWG streams hot paths (Matteo Collina) #63876
  • [315ca426d8] - stream: handle setEncoding after buffered data (Matteo Collina) #63973
  • [06413cd6bd] - stream: fix Utf8Stream stall after full write of multi-byte data (Daijiro Wachi) #63964
  • [a9f9a3dafa] - stream: keep overlapping broadcast reads pending (Trivikram Kamat) #63500
  • [009cca11bd] - stream: refine the stream/iter backpressure (James M Snell) #63697
  • [3f81dcfc99] - stream: only pass the expected number of parameters to callbacks (Antoine du Hamel) #63909
  • [9a83b5d1fe] - stream: fix dropped first chunk in Utf8Stream buffer mode (Daijiro Wachi) #63833
  • [0bdf5adea9] - stream: remove transform-writer handling in pipeTo (Trivikram Kamat) #63684
  • [10272a94b6] - stream: check done before backpressure in stream reader (Daijiro Wachi) #63699
  • [792c410631] - stream: fix pipeToSync byte accounting (Trivikram Kamat) #63564
  • [3cfafbc54b] - stream: reject pull() reads on abort (Trivikram Kamat) #63498
  • [640a8cede5] - stream: fast-path stateless transform flush results (Trivikram Kamat) #63605
  • [ece4477872] - stream: optimize pipeTo promise handling (Matteo Collina) #63572
  • [2cb84c2daf] - stream: handle sync writev completion in pipeTo (Trivikram Kamat) #63561
  • [7d9fdda5fa] - stream: settle pending broadcast reads on return (Trivikram Kamat) #63603
  • [e2aea3aac7] - test: tolerate duplicate watch change events (Trivikram Kamat) #63937
  • [ea6300593a] - test: mark test-debugger-run-after-quit-restart as flaky on macOS (Matteo Collina) #64006
  • [be1b204fa4] - test: update WPT for url to d4598eba09 (Node.js GitHub Bot) #63899
  • [b3d0d05b05] - test: update WPT for WebCryptoAPI to 03a1476844 (Node.js GitHub Bot) #63900
  • [046af2609f] - test: update WPT for urlpattern to 23aac92784 (Node.js GitHub Bot) #63898
  • [562b831a98] - test: add tests for 3 methods in util

Comments

No comments yet. Start the discussion.