惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
V
V2EX
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
小众软件
小众软件
Vercel News
Vercel News
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
J
Java Code Geeks
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
B
Blog
美团技术团队
量子位

Node.js Blog

Node.js — Security Bug Bounty Program Paused Due to Loss of Funding Node.js — Node.js 25.9.0 (Current) Node.js — Developing a minimally HashDoS resistant, yet quickly reversible integer hash for V8 Node.js — Node.js 25.8.2 (Current) Node.js — Node.js 24.14.1 (LTS) Node.js — Node.js 22.22.2 (LTS) Node.js — Node.js 20.20.2 (LTS) Node.js — Tuesday, March 24, 2026 Security Releases Node.js — Node.js 25.8.1 (Current) Node.js — Evolving the Node.js Release Schedule Node.js — Node.js 22.22.1 (LTS) Node.js — Node.js 20.20.1 (LTS) Node.js — Node.js 25.8.0 (Current) Node.js — Node.js 25.7.0 (Current) Node.js — Node.js 24.14.0 (LTS) Node.js — New HackerOne Signal Requirement for Vulnerability Reports Node.js — Node.js 25.6.1 (Current) Node.js — Node.js 24.13.1 (LTS) Node.js — Node.js 25.6.0 (Current) Node.js — OpenSSL Security Advisory Assessment, January 2026 Node.js — Node.js 25.5.0 (Current) Node.js — Chalk to Node.js util styleText Node.js — Node.js 25.4.0 (Current) Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users Node.js — Node.js 22.22.0 (LTS) Node.js — Node.js 25.3.0 (Current) Node.js — Node.js 24.13.0 (LTS) Node.js — Node.js 20.20.0 (LTS) Node.js — Tuesday, January 13, 2026 Security Releases Node.js — Node.js 24.12.0 (LTS)
Node.js — Node.js 12.9.0 (Current)
2019-08-20 · via Node.js Blog

Michaël Zasso

Notable changes

  • crypto:
    • Added an oaepHash option to asymmetric encryption which allows users to specify a hash function when using OAEP padding (Tobias Nießen) #28335.
  • deps:
    • Updated V8 to 7.6.303.29 (Michaël Zasso) #28955.
    • Updated libuv to 1.31.0 (cjihrig) #29070.
      • UV_FS_O_FILEMAP has been added for faster access to memory mapped files on Windows.
      • uv_fs_mkdir() now returns UV_EINVAL for invalid filenames on Windows. It previously returned UV_ENOENT.
      • The uv_fs_statfs() API has been added.
      • The uv_os_environ() and uv_os_free_environ() APIs have been added.
  • fs:
    • Added fs.writev, fs.writevSync and filehandle.writev (promise version) methods. They allow to write an array of ArrayBufferViews to a file descriptor (Anas Aboureada) #25925, (cjihrig) #29186.
  • http:
    • Added three properties to OutgoingMessage.prototype: writableObjectMode, writableLength and writableHighWaterMark #29018.
  • stream:
    • Added an new property readableEnded to readable streams. Its value is set to true when the 'end' event is emitted. (Robert Nagy) #28814.
    • Added an new property writableEnded to writable streams. Its value is set to true after writable.end() has been called. (Robert Nagy) #28934.

Commits

  • [5008b46159] - benchmark: allow easy passing of process flags (Brian White) #28986
  • [9057814206] - buffer: improve copy() performance (Brian White) #29066
  • [c7a4525bbe] - buffer: improve ERR_BUFFER_OUT_OF_BOUNDS default (cjihrig) #29098
  • [f42eb01d1d] - build: enable linux large pages LLVM lld linkage support (David Carlier) #28938
  • [5c5ef4e858] - build: remove unused option (Rich Trott) #29173
  • [fbe25c7fb7] - build: remove unnecessary Python semicolon (MattIPv4) #29170
  • [e51f924964] - build: add a testclean target (Daniel Bevenius) #29094
  • [0a63e2d9ff] - build: support py3 for configure.py (cclauss) #29106
  • [b04f9e1f57] - build: reset embedder string to "-node.0" (Michaël Zasso) #28955
  • [b085b94fce] - console: minor timeLogImpl() refactor (cjihrig) #29100
  • [54197eac4d] - (SEMVER-MINOR) crypto: extend RSA-OAEP support with oaepHash (Tobias Nießen) #28335
  • [a17d398989] - deps: V8: cherry-pick e3d7f8a (cclauss) #29105
  • [2c91c65961] - deps: upgrade to libuv 1.31.0 (cjihrig) #29070
  • [53c7fac310] - deps: patch V8 to be API/ABI compatible with 7.4 (from 7.6) (Michaël Zasso) #28955
  • [7b8eb83895] - (SEMVER-MINOR) deps: patch V8 to be API/ABI compatible with 7.4 (from 7.5) (Michaël Zasso) #28005
  • [7d411f47b2] - deps: V8: backport b33af60 (Gus Caplan) #28671
  • [492b7cb8c3] - (SEMVER-MINOR) deps: V8: cherry-pick d2ccc59 (Michaël Zasso) #28016
  • [945955ff86] - deps: cherry-pick 13a04aba from V8 upstream (Jon Kunkee) #28602
  • [9b3c115efb] - (SEMVER-MINOR) deps: V8: cherry-pick 3b8c624 (Michaël Zasso) #28016
  • [533b2d4a08] - (SEMVER-MINOR) deps: V8: fix linking issue for MSVS (Refael Ackermann) #28016
  • [c9f8d28f71] - (SEMVER-MINOR) deps: V8: fix BUILDING_V8_SHARED issues (Refael Ackermann) #27375
  • [f24caeff2f] - (SEMVER-MINOR) deps: V8: add workaround for MSVC optimizer bug (Refael Ackermann) #28016
  • [94c8d068f8] - (SEMVER-MINOR) deps: V8: use ATOMIC_VAR_INIT instead of std::atomic_init (Refael Ackermann) #27375
  • [d940403c20] - (SEMVER-MINOR) deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #27375
  • [ac0c075cad] - (SEMVER-MINOR) deps: V8: patch register-arm64.h (Refael Ackermann) #27375
  • [eefbc0773f] - (SEMVER-MINOR) deps: V8: update postmortem metadata generation script (cjihrig) #28016
  • [33f3e383da] - (SEMVER-MINOR) deps: V8: silence irrelevant warning (Michaël Zasso) #26685
  • [434c127651] - (SEMVER-MINOR) deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #26685
  • [040e7dabe4] - (SEMVER-MINOR) deps: V8: fix filename manipulation for Windows (Refael Ackermann) #28016
  • [cfe2484e04] - deps: update V8 to 7.6.303.29 (Michaël Zasso) #28955
  • [6f7b561295] - dns: update lookupService() first arg name (cjihrig) #29040
  • [ad28f555a1] - doc: improve example single-test command (David Guttman) #29171
  • [edbe38d52d] - doc: mention N-API as recommended approach (Michael Dawson) #28922
  • [ebfe6367f0] - doc: fix introduced_in note in querystring.md (Ben Noordhuis) #29014
  • [9ead4eceeb] - doc: note that stream error can close stream (Robert Nagy) #29082
  • [5ea9237d2b] - doc: clarify async iterator leak (Robert Nagy) #28997
  • [1b6d7c0d00] - doc: fix nits in child_process.md (Vse Mozhet Byt) #29024
  • [375d1ee58b] - doc: improve UV_THREADPOOL_SIZE description (Tobias Nießen) #29033
  • [7b7b8f21cb] - doc: documented default statusCode (Natalie Fearnley) #28982
  • [17d9495afa] - doc: make unshift doc compliant with push doc (EduardoRFS) #28953
  • [3bfca0b7e4] - doc, lib, src, test, tools: fix assorted typos (XhmikosR) #29075
  • [b7696b41e5] - events: give subclass name in unhandled 'error' message (Anna Henningsen) #28952
  • [d79d142e0c] - fs: use fs.writev() internally (Robert Nagy) #29189
  • [82eeadb216] - fs: use consistent buffer array validation (cjihrig) #29186
  • [81f3eb5bb1] - fs: add writev() promises version (cjihrig) #29186
  • [435683610b] - fs: validate writev fds consistently (cjihrig) #29185
  • [bb19d8212a] - (SEMVER-MINOR) fs: add fs.writev() which exposes syscall writev() (Anas Aboureada) #25925
  • [178caa56ae] - fs: add default options for *stat() (Tony Brix) #29114
  • [f194626ffb] - fs: validate fds as int32s (cjihrig) #28984
  • [c5edeb9776] - http: simplify drain() (Robert Nagy) #29081
  • [6b9e372198] - http: follow symbol naming convention (Robert Nagy) #29091
  • [2e5008848e] - http: remove redundant condition (Luigi Pinca) #29078
  • [13a497912d] - http: remove duplicate check (Robert Nagy) #29022
  • [16e001112c] - (SEMVER-MINOR) http: add missing stream-like properties to OutgoingMessage (Robert Nagy) #29018
  • [c396b2a5b2] - http: buffer writes even while no socket assigned (Robert Nagy) #29019
  • [f9b61d2bc7] - (SEMVER-MINOR) http,stream: add writableEnded (Robert Nagy) #28934
  • [964dff8a9e] - http2: remove unused FlushData() function (Anna Henningsen) #29145
  • [66249bbcad] - inspector: use const for contextGroupId (gengjiawen) #29076
  • [cb162298eb] - module: pkg exports validations and fallbacks (Guy Bedford) #28949
  • [491b46d605] - module: refine package name validation (Guy Bedford) #28965
  • [925e40cfa7] - module: add warning when import,export is detected in CJS context (Giorgos Ntemiris) #28950
  • [17319e7f44] - net: use callback to properly propagate error (Robert Nagy) #29178
  • [7f11c72cc5] - readline: close dumb terminals on Control+D (cjihrig) #29149
  • [3c346b8bad] - readline: close dumb terminals on Control+C (cjihrig) #29149
  • [e474c6776c] - (SEMVER-MINOR) readline: establish y in cursorTo as optional (Gerhard Stoebich) #29128
  • [2528dee674] - report: list envvars using uv_os_environ() (cjihrig) #28963
  • [a6b9299039] - src: rename --security-reverts to ...-revert (Sam Roberts) #29153
  • [62a0e91d8c] - src: simplify UnionBytes (Ben Noordhuis) #29116
  • [b2936cff5d] - src: organize imports in inspector_profiler.cc (pi1024e) #29073
  • [a9f8b62b47] - (SEMVER-MINOR) stream: add readableEnded (Robert Nagy) #28814
  • [1e3e6da9b9] - stream: simplify howMuchToRead() (Robert Nagy) #29155
  • [e2a2a3f4dd] - stream: use lazy registration for drain for fast destinations (Robert Nagy) #29095
  • [2a844599db] - stream: improve read() performance further (Brian White) #29077
  • [e543d35f35] - stream: inline and simplify onwritedrain (Robert Nagy) #29037
  • [6bc4620d8b] - stream: improve read() performance more (Brian White) #28989
  • [647f3a8d01] - stream: encapsulate buffer-list (Robert Nagy) #28974
  • [000999c06c] - stream: improve read() performance (Brian White) #28961
  • [6bafd35369] - test: deflake test-tls-passphrase (Luigi Pinca) #29134
  • [aff1ef9d27] - test: add required settings to test-benchmark-buffer (Rich Trott) #29163
  • [18b711366a] - test: make exported method static (Rainer Poisel) #29102
  • [0aa339e5e1] - test: skip test-fs-access if root (Daniel Bevenius) #29092
  • [e3b1243ea2] - test: unskip tests that now pass on AIX (Sam Roberts) #29054
  • [f9ed5f351b] - test: assert: add failing deepEqual test for faked boxed primitives (Jordan Harband) #29029
  • [43e444b07a] - test: refactor test-sync-io-option (Anna Henningsen) #29020
  • [82edebfebf] - (SEMVER-MINOR) test: add test for OAEP hash mismatch (Tobias Nießen) #28335
  • [f08f154fd6] - (SEMVER-MINOR) test: update postmortem metadata test for V8 7.6 (cjihrig) #28016
  • [5b892c44d6] - tls: allow client-side sockets to be half-opened (Luigi Pinca) #27836
  • [c4f6077994] - tools: make code cache and snapshot deterministic (Ben Noordhuis) #29142
  • [acdc21b832] - tools: make pty_helper.py python3-compatible (Ben Noordhuis) #29167
  • [31c50e5c17] - tools: make nodedownload.py Python 3 compatible (cclauss) #29104
  • [1011a1792c] - tools: allow single JS file for --link-module (Daniel Bevenius) #28443
  • [4d7a7957fc] - (SEMVER-MINOR) tools: sync gypfiles with V8 7.6 (Michaël Zasso) #28016
  • [a4e2549b87] - util: improve debuglog performance (Brian White) #28956
  • [112ec73c95] - util: isEqualBoxedPrimitive: ensure both values are actual boxed Symbols (Jordan Harband) #29029
  • [8426077898] - util: assert: fix deepEqual comparing fake-boxed to real boxed primitive (Jordan Harband) #29029
  • [d4e397a900] - worker: fix crash when SharedArrayBuffer outlives creating thread (Anna Henningsen) #29190

Windows 32-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v12.9.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v12.9.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0.pkg
macOS 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-aix-ppc64.tar.gz
SmartOS 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-sunos-x64.tar.xz
ARMv7 32-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v12.9.0/node-v12.9.0.tar.gz
Other release files: https://nodejs.org/dist/v12.9.0/
Documentation: https://nodejs.org/docs/v12.9.0/api/

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

c690810b11e286778c0eacb8f1f56af1973d71b1788c54040f25380fc3ff6bcd  node-v12.9.0-aix-ppc64.tar.gz
24c1f0c93e485961446814662db942f1b309d843fb4ecbe50466d9857a51b343  node-v12.9.0-darwin-x64.tar.gz
3e3dcfbfb78c55e582bb16ad6d995edfa93fdb3c4fe2020981e4f0adae255821  node-v12.9.0-darwin-x64.tar.xz
4dfb4147c8e41bacf7ac2bfcc844ec5ff4721cd47ace4b8a7e8ef07548d44773  node-v12.9.0-headers.tar.gz
4baa0822d0321522cdcedfc2025e9395c3a34ea6ef4af53a3147a66f23778219  node-v12.9.0-headers.tar.xz
703134352854e3501023cda8eba68f1f992a426f1cda649dc6b38e248b07fcf1  node-v12.9.0-linux-arm64.tar.gz
f7f6f102d097d64eba26f84f2760597f9831886ef7d0db3cba88459847f2743d  node-v12.9.0-linux-arm64.tar.xz
05e3f81f17528d24409028bc66cb03fa18892af4d63e7cddaeb1189fe28ed005  node-v12.9.0-linux-armv7l.tar.gz
689d9e0e180bceb268876d95c86c3d8e64eb0440a90cd2e57c61899209d05acb  node-v12.9.0-linux-armv7l.tar.xz
a5b0ac5557df1588d2b74a4ec33a6cf4feb0586d899b048d1eb9befd5de8a738  node-v12.9.0-linux-ppc64le.tar.gz
d5b1f14753eb8c084a22e709f38d024cf7d974cee67ed095a78665d0b62a6b69  node-v12.9.0-linux-ppc64le.tar.xz
149243fed728766eb31eb51534dba53a8eb25a58d08d6b1a354dea8deeade987  node-v12.9.0-linux-s390x.tar.gz
0c4b933cbce5f7153effed002e7aa58abde650256aae05ae951b1e6cfde1c4e6  node-v12.9.0-linux-s390x.tar.xz
3991e5b65fbaab8d70cda813b9bc73dd3b4201aeef42bcb1c000a03869aa0610  node-v12.9.0-linux-x64.tar.gz
7110bdd16e397870142ff0e8d92d4a4502d43ec047d970c843a9a4e5f9e79283  node-v12.9.0-linux-x64.tar.xz
7a18632a187137f21f88dbc0ae85c8a34d20fccb4b7c26be665fdc56a929c3fc  node-v12.9.0.pkg
b0260415bf006330ca282a370dc56fcd018981a0024512785ea545fc49fd1d0f  node-v12.9.0-sunos-x64.tar.gz
d8ad03d2c9f09d605607fc211749f53c708f8ff51a254f6731d9544c95d9112d  node-v12.9.0-sunos-x64.tar.xz
88cb425086a87323288c8389e974e8c1001b81fe11c529e64592e8feb2d12f93  node-v12.9.0.tar.gz
e05fe8ba1bdf58e51cdb5d946ebb7a2dec567b3680da2752e120a763293a41c5  node-v12.9.0.tar.xz
2c25b307d7acbeeb1fb618587ceb6769391a5cfd8ee9be805e1ac5344b9f3a2f  node-v12.9.0-win-x64.7z
b5f05deb31ac04b9c3a487542daf151e01c05017403a56ba443da623f36b153b  node-v12.9.0-win-x64.zip
87adc248df2b1be102e5025b571849638ac337f595ce6c5dbec3d8cea9d374ce  node-v12.9.0-win-x86.7z
a0d680846dff00222b886164e1428d257aa8031a63b52cc21de6540386a4e2d0  node-v12.9.0-win-x86.zip
7e6c6855fc4eb44b95a033f4ad8d73d7823388dd01ceb98a91eb68a7625323f3  node-v12.9.0-x64.msi
cdf09fc5223c4c47e5182803164d641365ef54eaa6dc3fd4c580fe1255faa433  node-v12.9.0-x86.msi
d5e9555256523c188af94ad9736c3a4492578842ccdfe8318ccf9caec2977bfd  win-x64/node.exe
654cb8682984cbed2ca698e5b3ebd05edaa60174d964432143bdfc0c38254aa7  win-x64/node.lib
7fb28adbb18c03ecd8a8fc4e5da6a715d7adf3b79a8c626638d0c07faad6e47b  win-x64/node_pdb.7z
417b7393c519c70ed96377a50323150714c0c931a571a97789c0f0ba352d2d73  win-x64/node_pdb.zip
cc2f13a4028a5c72aef8d03cb503b76036b87e3dcf400b7e000a30ae39e7f652  win-x86/node.exe
df075eff064bd3e081d848484b4b7c99b3a022a8a8e5988b2d17dbf4d0489a56  win-x86/node.lib
f2b5001a3d5bf3682c5feec610844a4f112d274e6c9b796d38dfde16ff7b0991  win-x86/node_pdb.7z
5f180908b937afbef929f4ad07f7b3355c2510d50e88ec053798b3bdbc57be3b  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAl1cTCgACgkQdw96mlrh
VgBjJA/9G6n17aIguQqqe9lmAstCDgx5zhCTnVI9vE6CtYB50HIUFQKHlc8+ijXy
QC667tTWcyoLleSEuERnWrymf1Pv+6kVaD+stQnl6nT8ioMKoJ1u16c9NOnErVoj
+AtAR16d9aXXVLTXWO1iy9jOxrXrReUpRh8tgHZ2cBUBrBY3yZZhWaeFSU0fPa1E
N/WxKeyfByLnnOc817QH6a7BUQikx2H6ZRiWis36eGMN/tTZCvh8Bw/mgGg+0jvd
YQhsj784ZoKnUdzEnCceq5WyEwFr/nFsTsrBwbSR109iysv+eQZOaqXaOI2+4Hsa
BQj/2DXuFGog79B9WO7BetkD9LqBPOP6mLXRP70Mbjnm+7GayYi1wblzYpiqekEJ
oyci1ph/AKAXkppzVo/dcIKhFvkJWKAhme8RuRSnc5e7w4uB0x3hrVZBSHrmOUgF
Miu+//N8Sh86Pww1wfmWYy253wC1sbCPgWf4whOjZ1YLf56TbsG223PjZXebI49E
NhX7VqlQC1u9JV3VvmGVHBrL0X0w3+jMcm32tfWlT8Dgzbo8jYO0eUEFNuGqa5uL
kbvyB0W2nFpK5uOPR7JOO32jt+k2y2TEYcbfnL7sYuYL95tP/UNPvjYO0AN9Rk02
dAqybpZw4nLwmge89LYTFo4/YRt1NJZ86c6sN86fNck7HHKYIms=
=o1jr
-----END PGP SIGNATURE-----