Node.js Blog

Node.js 26.12.0 (Current)

6.9内容质量

TL;DR · AI 摘要

Node.js — Node.js 26.12.0 Current Node.js 26.12.0 Current RL Richard Lau Node.js 26.12.0 Current 2026-10-14, Version 26....

核心要点

  • 主题聚焦:Node.js 26.12.0 Current
  • 来源:Node.js Blog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#前端#后端#开源
打开原文

Node.js — Node.js 26.12.0 (Current)

Node.js 26.12.0 (Current)

RL

Richard Lau

Node.js 26.12.0 (Current)

2026-10-14, Version 26.12.0 (Current), @richardlau

Notable Changes

  • [ 1ebd6d3677 ] - (SEMVER-MINOR) doc,lib,src : throw on missing WebAssembly or RX support (Paolo Insogna) #66533
  • [ 7f1937d2b9 ] - (SEMVER-MINOR) http : add websocketMask() and websocketUnmask() (James M Snell) #66335

Commits

  • [ 30e76bb16a ] - benchmark : fix input passed to subtle.digest in webcrypto-digest (Rafael Gonzaga) #66608
  • [ adef72223a ] - benchmark : fix buffer option in buffer read/write benchmarks (Rafael Gonzaga) #66604
  • [ 2f498f08fe ] - benchmark : add util.parseArgs benchmark (Rafael Gonzaga) #66599
  • [ 4ce8412e18 ] - benchmark : fix url-searchparams-sort to sort a fresh list (RafaelGSS) #66535
  • [ 493bd6c66e ] - benchmark,tools : fix napi benchmarks on GHA (Nigro Simone) #66423
  • [ e4515552d6 ] - build : run QUIC CI for V8 changes (Yuya Inoue) #66602
  • [ a888e51062 ] - build : support Python 3.15 (Mike McCready) #65750
  • [ 2afab9a63b ] - build : do not include shared gtest in node link path (Antoine du Hamel) #66626
  • [ f88c2f8ec6 ] - build,test : enable temporal support on no-ICU and system-ICU builds (Antoine du Hamel) #66697
  • [ 5fd03e6fdf ] - child_process : propagate config-file permission flags to children (Rafael Gonzaga) #66559
  • [ f771134b07 ] - crypto : isolate provider EC PKCS8 encoding (Filip Skokan) #66413
  • [ 4e00a293db ] - crypto : remove key export and metadata locks (Filip Skokan) #66413
  • [ bcd8018775 ] - crypto : remove verify setup key locking (Filip Skokan) #66413
  • [ 883250fee2 ] - crypto : remove KEM key locking (Filip Skokan) #66413
  • [ 9d98805071 ] - crypto : remove RSA-OAEP key locking (Filip Skokan) #66413
  • [ d6293e7bb1 ] - crypto : skip secret key mutex allocation (Filip Skokan) #66413
  • [ 8d8af8003e ] - crypto : keep the root cert store per Environment (Shelley Vohr) #66411
  • [ c6f0614785 ] - crypto : remove select Web Crypto warnings (Filip Skokan) #66312
  • [ e5360b5a08 ] - deps : update googletest to 988ea2c1798de7779f656df2281dd36d6039a17a (Node.js GitHub Bot) #66652
  • [ 7eb230a2c1 ] - deps : update acorn to 8.19.0 (Node.js GitHub Bot) #66655
  • [ af946ba8f3 ] - deps : update sqlite to 3.54.0 (Node.js GitHub Bot) #66663
  • [ 007872a85d ] - deps : V8: cherry-pick 8d14d49c4040 (Antoine du Hamel) #66627
  • [ f44aec4966 ] - deps : update simdjson to 5.0.3 (Daniel Lemire) #66620
  • [ 1a33e914e8 ] - deps : V8: cherry-pick 7d5eb1df2a72 (inoway46) #66566
  • [ 3294d51e5a ] - diagnostics_channel : fix default callback context (Matteo Collina) #66481
  • [ 5c602a5824 ] - doc : list futimes among fd APIs disabled by the permission model (Rafael Gonzaga) #66649
  • [ eaeb4736c8 ] - doc : add Test Runner to list of built-in diagnostic channels (Vas Sudanagunta) #66563
  • [ 0e1c99afae ] - doc : document stream/iter behaviors and Node.js extensions (James M Snell) #66483
  • [ 846236367d ] - doc : document URL and Uint8Array references in process.permission (Rafael Gonzaga) #66557
  • [ fc3b067be7 ] - doc : clarify http Agent keepSocketAlive behavior (Efe Karasakal) #66252
  • [ 73a4e90ce2 ] - doc : document keepAliveTimeoutBuffer server option (Efe Karasakal) #66286
  • [ bb816582af ] - doc : fix request.reusedSocket timeout example (Efe Karasakal) #66286
  • [ 82223ab4d9 ] - doc : clarify revert PR label policy (Antoine du Hamel) #66529
  • [ c6f59d4e8e ] - doc : clarify node binary misuse after compromise (Rafael Gonzaga) #66530
  • [ 8904178498 ] - doc : document linux-x64-musl build toolchain (Issac) #66523
  • [ 1e8247a74e ] - doc : run license-builder (github-actions[bot]) #66517
  • [ b2773d5e4c ] - doc : add missing return types in cluster.md (Daniel Pinto) #66453
  • [ c1073f31de ] - ffi : fix exportArrayBuffer type check (Trivikram Kamat) #66455
  • [ 69148ee0ff ] - fs : lock FileHandle on first read in pull() and pullSync() (James M Snell) #66483
  • [ 700c60a1cd ] - fs : serialize FileHandle writer() async writes (James M Snell) #66483
  • [ 32833def1c ] - http : reduce raw header name allocations (Roberto Bianchi) #66488
  • [ 115731dda7 ] - http2 : speed up response getHeaders (Roberto Bianchi) #66592
  • [ 447c36cb45 ] - lib : fix AbortSignal.any() nested composite leak (Darius) #66617
  • [ 1722ced4b4 ] - lib : add --allow-fs-vfs to permission available flags (Rafael Gonzaga) #66554
  • [ 062ece77fc ] - lib : fix benchmark record acknowledgement race (Filip Skokan) #66430
  • [ 05d0b14438 ] - lib : set exit code on failed node:bench run() (RafaelGSS) #66534
  • [ 2cab299471 ] - lib : default node:bench warmup to 10 invocations (RafaelGSS) #66536
  • [ 83f507845d ] - meta : bump nodejs/node-pr-labeler to dfe5eb3 (Soul Lee) #66606
  • [ 6fbffd5ee5 ] - meta : bump codecov/codecov-action from 7.1.0 to 7.1.1 (dependabot[bot]) #66448
  • [ bd567f8bd6 ] - module : fix require of imports with package map (Lazizbek Ergashev) #66565
  • [ c442f471a5 ] - module : synchronously load most ES modules (Geoffrey Booth) #62530
  • [ 51f66f0134 ] - permission : keep explicit fs grants when dropping a covering directory (Rafael Gonzaga) #66556
  • [ 1aa10d80e2 ] - process : mark process.finalization as release candidate (Matteo Collina) #66436
  • [ dd4715a6ba ] - querystring : fix value decoding after encoded keys (Ved Chaudhari) #66553
  • [ 9648a6ba8e ] - quic : reject closed stream writer writes with a TypeError (James M Snell) #66483
  • [ d6f566baf8 ] - quic : give each BindingData its own allocator state (Shelley Vohr) #66411
  • [ c3204c15bd ] - quic : validate session close error codes (Christian Aurich Zanettini Martins) #66302
  • [ 5b87354f5a ] - quic : destroy stream on invalid promise body (Christian Aurich Zanettini Martins) #66260
  • [ 9ef698c781 ] - sqlite : validate aggregate() name and options (Guilherme Araújo) #66463
  • [ bbf41f8cfb ] - sqlite : persist enableDefensive() across reopen (Trivikram Kamat) #66404
  • [ 54867cd25e ] - sqlite : throw on oversized strings instead of aborting (Trivikram Kamat) #66521
  • [ 4314cde48b ] - src : release uv_fs_t in permission WildcardIfDir (Rafael Gonzaga) #66555
  • [ 0e58916f08 ] - src : stop including simdjson.h from env.h (Daniel Lemire) #66620
  • [ 06f56a55bb ] - src : use native CopyArrayBufferBytes for webstream buffer copy (René) #66400
  • [ 2e3dd5bb63 ] - src : fix config file handling (Marco Ippolito) #66431
  • [ cd86506bc2 ] - src : mark config file as stable (Marco Ippolito) #66431
  • [ 15ff9884e4 ] - stream : skip idle webstreams start and watchers (Matteo Collina) #66424
  • [ 3f75c89fb8 ] - stream : add pipeToSync() failOnIncompleteClose option (James M Snell) #66483
  • [ 6cecf140e7 ] - stream : do not fail the writer when pipeToSync() cannot close (James M Snell) #66483
  • [ 16833534b6 ] - stream : fix fromSync() async input error messages (James M Snell) #66483
  • [ af41622ad8 ] - stream : reject closed fromWritable() writes with a TypeError (James M Snell) #66483
  • [ 4b83c6c38e ] - stream : accept explicit stream/iter budgets below 16384 (James M Snell) #66483
  • [ f302fbd04a ] - stream : reduce per-chunk overhead in stream/iter consumers (James M Snell) #66483
  • [ 7ba60dcdbe ] - stream : keep the original error when writer.fail() throws (James M Snell) #66483
  • [ dcac51a7db ] - stream : align pull() abort handling with the spec (James M Snell) #66483
  • [ 995dee6b6b ] - stream : honor stream/iter protocols on function objects (James M Snell) #66483
  • [ 6eaf91353a ] - stream : do not hold back nested async data in from() (James M Snell) #66483
  • [ 69d44aedb4 ] - stream : bound pre-batched async values in from() (James M Snell) #66483
  • [ 6b1e7c4cf1 ] - stream : guard shareSync() against re-entrant source reads (James M Snell) #66483
  • [ 8a47365425 ] - stream : split oversized share batches under drop-oldest (James M Snell) #66483
  • [ 30cbc4e643 ] - stream : reject drop-newest backpressure in shareSync() (James M Snell) #66483
  • [ 42ae08594e ] - stream : detach shareSync consumers on strict budget errors (James M Snell) #66483
  • [ fa49de9ba6 ] - stream : keep share buffer when all consumers detach (James M Snell) #66483
  • [ e6662cb904 ] - stream : fix Utf8Stream flush handling (James M Snell) #66473
  • [ 93596b1a9e ] - stream : add dump()/dumpSync() for stream/iter (Ethan Arrowood) #65598
  • [ 4ba6ce1b0c ] - stream : port remaining SonicBoom tests for Utf8Stream (Matteo Collina) #66275
  • [ cd8b5fa5b0 ] - test : tolerate async block count updates in test-fs-stat-bigint (Rafael Gonzaga) #66576
  • [ 30814ce991 ] - test : replace discard loops with dump() (Ethan Arrowood) #65598
  • [ 20441b8fc0 ] - test : run node-bench tools test sequentially (Filip Skokan) #66338
  • [ 9618da6fe3 ] - test : remove duplicated cases in permission fs-read fixture (Rafael Gonzaga) #66450
  • [ c348a4cb46 ] - test : run instantiateStreaming-bad-imports WPT (Filip Skokan) #66322
  • [ 7d4fda6ba7 ] - test : honor allowed WPT promise rejections (Filip Skokan) #66322
  • [ d4c87eb086 ] - test : scope Blob WPT failures to big-endian (Filip Skokan) #66322
  • [ 7309ddf204 ] - test_runner : rerun failing todo tests in suites (Barak) #66605
  • [ da908b3072 ] - test_runner : report load errors with --test-isolation=none (Lazizbek Ergashev) #66550
  • [ b18e121625 ] - test_runner : add mock call assertions to t.assert (Guilherme Araújo) #66476
  • [ 3d691ab75e ] - tools : restore Python 3.14 for daily WPT (Filip Skokan) #66699
  • [ 714aca1ef6 ] - tools : switch to PGP and SHA256 in ICU updater (Antoine du Hamel) #66469
  • [ fa9fca45e4 ] - tools : lint thread_local in src (Shelley Vohr) #66411
  • [ dbc3e97847 ] - tools : copy hdr_histogram_internal.h in update-histogram.sh (Filipe Oliveira (Redis)) #66528
  • [ 4760c27904 ] - tools : bump the eslint group in /tools/eslint with 5 updates (dependabot[bot]) #66445
  • [ 63c20ee58e ] - vfs : add ComposableProvider for layered mounts (Matteo Collina) #66235
  • [ ab057989af ] - watch : strip underscore aliases of watch flags (Trivikram Kamat) #66365

Windows 64-bit Installer: https://nodejs.org/dist/v26.12.0/node-v26.12.0-x64.msi Windows ARM 64-bit Installer: https://nodejs.org/dist/v26.12.0/node-v26.12.0-arm64.msi Windows 64-bit Binary: https://nodejs.org/dist/v26.12.0/win-x64/node.exe Windows ARM 64-bit Binary: https://nodejs.org/dist/v26.12.0/win-arm64/node.exe macOS 64-bit Installer: https://nodejs.org/dist/v26.12.0/node-v26.12.0.pkg macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v26.12.0/node-v26.12.0-darwin-arm64.tar.gz macOS Intel 64-bit Binary: https://nodejs.org/dist/v26.12.0/node-v26.12.0-darwin-x64.tar.gz Linux 64-bit Binary: https://nodejs.org/dist/v26.12.0/node-v26.12.0-linux-x64.tar.xz Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v26.12.0/node-v26.12.0-linux-ppc64le.tar.xz Linux s390x 64-bit Binary: https://nodejs.org/dist/v26.12.0/node-v26.12.0-linux-s390x.tar.xz AIX 64-bit Binary: https://nodejs.org/dist/v26.12.0/node-v26.12.0-aix-ppc64.tar.gz ARMv8 64-bit Binary: https://nodejs.org/dist/v26.12.0/node-v26.12.0-linux-arm64.tar.xz Source Code: https://nodejs.org/dist/v26.12.0/node-v26.12.0.tar.gz Other release files: https://nodejs.org/dist/v26.12.0/ Documentation: https://nodejs.org/docs/v26.12.0/api/

SHASUMS

code
-----BEGIN
PGP
SIGNED
MESSAGE-----
Hash:
SHA256
34d306d13e321942f6a48c5c0b8c4e781e864cbe052cf04386ace94f5448033d
node-v26.12.0-aix-ppc64.tar.gz
bc13c50e9dd29645c3b5880ae8366c7c603fe97945ae32b4f846381fa15f5348
node-v26.12.0-arm64.msi
2a154d4a5458930e0a2d6a1ecf64eddf5a2b3e1c13636b609c2ecb042e8c4553
node-v26.12.0-darwin-arm64.tar.gz
a2e255e35347f727f29aa158c552a60140b17b6ba68719d5d6fc46c7d058aa75
node-v26.12.0-darwin-arm64.tar.xz
878ecede191c7abc1bff01d3fb81f7ed81aa1161040dba18776b8ff8593614b1
node-v26.12.0-darwin-x64.tar.gz
c04edbd7b8429acb26058dee20c915308b174b71612ebfcb7e5976d790ae47d4
node-v26.12.0-darwin-x64.tar.xz
6abd0ddeccf3ebec9abe99582710c594669ee9510a40a1d1d990133dec36a1fc
node-v26.12.0-headers.tar.gz
c30445f95c9f6e44b4cc3d5a2b5644d5195fa11a1799b4a182006072d8cb68ec
node-v26.12.0-headers.tar.xz
ec53c915c3fdd8786c5685abd25ae3fe9fba0692307f9811d7caaadea1bcaf03
node-v26.12.0-linux-arm64.tar.gz
fd6cc729fa4448c2ac27c3fca5606019ced63c65a15c152c8df03e0cbce7f4c5
node-v26.12.0-linux-arm64.tar.xz
f9350847d0732f8bcc1577417ce536f0d617f93f093c664d88f0b1e70f2cc4e4
node-v26.12.0-linux-ppc64le.tar.gz
e90a7c8a3b2e453d3be98782b0275f119334d1a780434470b5e912f1fbfdc57d
node-v26.12.0-linux-ppc64le.tar.xz
7563e026ac03f95120201e37d6074960d06610536f45aac1fa5ed87cf74ac0d4
node-v26.12.0-linux-s390x.tar.gz
a62e7e0a7aa77893646fa076ff0444aa916e57ec3554d4cfc89f68e79f10c103
node-v26.12.0-linux-s390x.tar.xz
fdaa2cf6e44ca443a374b05db121827001aa167be25676368bab9bf36c0e48d1
node-v26.12.0-linux-x64-musl.tar.gz
4eec22381cc162f55273151bdf4f434d61216bb5abc3e7a23b8ad859ee5827c7
node-v26.12.0-linux-x64-musl.tar.xz
d9f88af72ad34f7ddf8e67289829f1698f54b6254f7d4f54b7453117ff1a3d2c
node-v26.12.0-linux-x64.tar.gz
fd47865ecd6391ebb431fc815e01b9135bf83ded5cf373247e9331e196b7aded
node-v26.12.0-linux-x64.tar.xz
4a52bdf4a236145267143ce2cc8c058def3485a5901af055572d5f15d026cf77
node-v26.12.0.pkg
435d4e5b5e12e14819f2598710f0f637f2094b25232fdf0cc304b7c4eadeadbb
node-v26.12.0.tar.gz
ce59f9038dda0e637656fb1c36cf52c07c637922fd81d419dbba2ec129afbd35
node-v26.12.0.tar.xz
c6e88e5a0ff6afdb6dfd2c8b6dc690f14f2eafc75bf839397ff9c447fdded3a2
node-v26.12.0-win-arm64.7z
cc773b9829623e3d4fd13aef394f05010e0459273f27fb3255150f38a2577abf
node-v26.12.0-win-arm64.zip
7a43d0d5b196dcb5990712a1ff403b2858366eeb0385fcaa7cbf27088dbb23d4
node-v26.12.0-win-x64.7z
50efaf01a08c520b4bbe499c09a8c5a5c370002c419c0d9da2c6815d3066a453
node-v26.12.0-win-x64.zip
dd72e3693abed70b7cb5c528dc6eaa46e628a25cd82319fb2c1ccb4462cce633
node-v26.12.0-x64.msi
141c9ed6c662e848aecdf2f3540ad5a9a7d97d51bca300e9e1a9c308f4e1cf93
win-arm64/node.exe
45084cbfc0170d7a30b29ab1eeeb2b0d770995ade0a13a4cc82cf31189f95c9f
win-arm64/node.lib
176fc7eda8c6ae75f073200fc2d2cb2d03a4b4ed2d7822c76750c00d0c7c99eb
win-arm64/node_pdb.7z
32ef09e9e7b5829bba3190b64ee603555ea91c85bab75fa8084e0fd7130eb7ab
win-arm64/node_pdb.zip
1a14457b043fe82fd2fc027959595e91d138a8185c7ca6c02c15c16632b51aa4
win-x64/node.exe
caad0090dc3add94c06abd01e395e8ec0f1586c10071bda1f99480445d695f6f
win-x64/node.lib
598c8b6c1ae03a3f24f4ff8d395313e25e3c386efd1c4cb00d45efd9ca57cf1a
win-x64/node_pdb.7z
63043620be735731e016e35189dff6d80dc6e1b534bcbf4a79814f8b9f6b983a
win-x64/node_pdb.zip
-----BEGIN
PGP
SIGNATURE-----
iQIzBAEBCAAdFiEEyC+jrhy+3Gvka5NgxDzsRcF6uTwFAmrPnfwACgkQxDzsRcF6
uTxseBAAurwha0uv70sp0lvJVcxitj+7zhb5Fa1jK1/njAlKRc2N9ZAwji2tdhZC
GwAtNmhd9Z+hwWrpi/8YEQy3kMfi3QpAVAm7nxzD7CBiFEeURP21VADpwKDtJp1R
fue5K7sGli2M07B7/8sgndj5ddGYcRqfWds0LWKbdp3Ws+mlnh9/wF5zUtYt1tne
yur2IZD+qEFqVqnJT54lu4WCGrllUgbH5t1nQP+oIRrSJDgj6VfLKpAHTBT0Qu1n
osZvnktriYkYp7v86DXh/n8/2G8H7AaZv44lNmMZ90UiCSSu7bheyzqCL4p2COWD
52uDac6oM7/zZJ0JD8yJrkL8jKFfIqapwkcUkXyBjR6MN2oyn/KzKUFOPkKh7NU4
Uji0AYs4BFsRWfzVD7WH5AIDiES2Aw44O3sAWViQnUzAuIT9TtOxYwpujj/aMXa4
7jtGsxFutRqY327+RLfPRGjXoLvF3Qg8GEyNLMBezb9LnTqNf3mDkO8qbobqXhzu
JswodLLEQdwMwvFOr2m+HIqWwM5aACBElFnsTJWUtS77xOjjNqUSCgpPLb0zDgMJ
OiGqyyFjM3MU7KgTStvnLyTJ8+Xr39lNUQVxWvS/VI+NQ7OsXzu6wYAin1DyUJgN
UmnEdFrLhtgagqGZQGoJ933D9RwNIdQoyqLePsEWVL3GgOxHGDU=
=9EZ3
-----END
PGP
SIGNATURE-----

Previous

Node.js 24.22.0 (LTS)

Next

Node.js 26.11.1 (Current)