本文へ移動

Node.js 26.9.0 は ffi が既定有効、node:bench は実験フラグの後ろ

2026年9月16日の Current リリースに SEMVER-MINOR が11件並んだ。ffi の既定有効化、node:bench、worker の Web Workers 対応まで、どの領域に何が入ったかを整理した。

11件 26.9.0 の Notable Changes に並ぶ SEMVER-MINOR 2026年9月16日公開のリリース記事の Notable Changes は11行で、すべてに SEMVER-MINOR の印が付く。1週間前の 26.8.2 は4行でゼロ

リリース記事の見出しは「Node.js 26.9.0 (Current)」、日付は2026年9月16日、リリース担当は @aduh95。Notable Changes に並ぶのは11件で、そのすべてに SEMVER-MINOR の印が付いている。依存更新とドキュメント修正を拾うだけの回ではない。

比較対象は1週間前にある。26.8.2 は2026年9月9日公開の同じ Current で、Notable Changes は4件だった。node:net の Server.prototype._listen2 の deprecate、実験的機能のセキュリティ方針の整理、Undici 8.10.2、OpenSSL 3.5.8。この4件に SEMVER-MINOR は一つもない。

11件はどこに入ったか

領域Notable Changes の記載PR
libnode:bench の実装#65606
ffiモジュールを既定で有効化#65475
workerWeb Workers のサポート追加#64894
vfsCJS と ESM のモジュールローダーと統合#63653
crypto汎用 MAC API の追加#65553
cryptoOpenSSL プロバイダから cipher を検出#65484
cryptoOpenSSL プロバイダから hash を検出#65484
perf_hooksHistogram の meanCI API#65606
perf_hooksヒストグラム交換用の CBOR export/import#65434
srcsnapshot なしで embedder が builtin code cache を供給#65352
src,lib実験的な DTLS API#63182

出典:Node.js 26.9.0 (Current) の Notable Changes

crypto が3件、perf_hooks が2件、src 系が2件。残りは lib、ffi、worker、vfs が1件ずつになる。同じ PR 番号が複数行にまたがるものもあり、node:bench と perf_hooks の meanCI はどちらも #65606、cipher の検出と hash の検出はどちらも #65484 だ。11行が11個の独立した変更というわけではない。

node:bench は —experimental-bench の後ろにある

Notable Changes は lib: implement node:bench (#65606) と書く。一方、同じリリースのコミット一覧には lib: put node:bench behind an --experimental-bench flag (#65920) が並ぶ。実装が入ったという記述と、フラグの後ろに置いたという記述が同じリリース記事に同居している。試すにはフラグが要ると読むのが安全で、既定で node:bench が使えるとする根拠はこのリリース記事にはない。

周辺のコミットは厚い。#65606 には bench/reporters、明示的な createRunner、CLI を含む実装の完成、そして Node 自身のベンチツールを node:bench 版にする変更が入っている。#65631 のほうは runFile API、context.diagnostic API、bench:plan イベント、runId・fileRunId・entryFile・namePath の追加、--require の扱いの修正が並ぶ。doc も同じ #65631 で「significance policy」「isolation modes」「measurement integrity」を明確化している。有意差の扱いと分離モードが仕様として文書化されていることは読み取れるが、その中身はコミット行からは分からない。

ffi の既定有効化と、その周りの入力検証

「ffi: enable module by default」(#65475)。同じリリースに ffi の修正が3件ある。メモリヘルパーの引数が欠けていたら throw する (#65500)、エラーメッセージに SharedArrayBuffer を含める (#65735)、DynamicLibrary の getter の receiver を検証する (#65415)。既定で有効になったことで起動時に何が不要になるのか、安定度がどう扱われるのかは、リリース記事の記載からは決められない。

vfs、worker、crypto

vfs が CJS と ESM のモジュールローダーに統合された (#63653)。同じリリースに「sea: mount bundled assets as a virtual file system」(#65675) もあるが、こちらに SEMVER-MINOR の印はなく、両者の関係はリリース記事に書かれていない。

worker には Web Workers のサポートが入った (#64894)。既存の worker_threads とどう併存するのか、どちらをいつ選ぶのかは、この一行からは分からない。

crypto の semver-minor は3件、汎用 MAC API (#65553) と OpenSSL プロバイダからの cipher・hash の検出 (#65484) だ。印は付かないが FIPS 周りも同じリリースで動いている。--force-fips の strict モードと FIPS indicator の diagnostics channel が、どちらも #65645 で入った。FIPS を有効にして Node を動かしている環境なら、semver-minor の3件より先にこの2行を見ることになる。

本番に入れるかを決める材料

見出しに (Current) と書かれている以上、これは Current チャネルのリリースだ。リリース記事に LTS の表記はない。1週間で SEMVER-MINOR が11件積まれるチャネルであることは、26.8.2 と 26.9.0 を並べれば分かる。LTS 側でも semver-minor が入る例は /posts/nodejs-24-lts-semver-minor-additions/ で扱った。

今日やることは多くない。node:bench を評価するならフラグ付きで別環境に回す。ffi を使っているなら、既定有効化が自分の起動オプションと噛み合うかを確かめる。Notable Changes の11件はいずれも追加を示す SEMVER-MINOR として挙げられており、既存の挙動を変える破壊的変更としては記載されていない。ただし挙動が変わらないと書かれているわけでもないので、判断はリリース記事の外にある。

出典 種別について