本文へ移動

Node.js 26.11.0 の sqlite が改名、DatabaseSync など旧名は残る

node:sqlite の新名は Database と Statement。旧名は互換用の別名として残り、非推奨はドキュメント上の扱いだ。Node.js 26.11.0 の公式文書から、既存コードの確認箇所と API 追加を整理する。

Node.js 26.11.0(Current、2026年10月7日)で、node:sqlite の DatabaseSync は Database、StatementSync は Statement に改名された。旧名は互換用の別名として残る。公式の v26.11.0 非推奨文書は、この変更を Documentation-only(ドキュメント上のみの非推奨)としている。

リリースノートは改名の一行だけだが、そこからリンクする PR #65988 と非推奨文書には新旧の名前の関係がある。旧名の削除を理由に直ちに書き換える必要はなく、新しく書くコードでは新名を使う整理になる。これは改名の扱いであり、今回のリリース全体の互換性を保証するものではない。

既存コードでは、旧名を import・require している箇所を確認対象にできる。文字列検索は直接記述した利用箇所の洗い出しには役立つが、動的な参照や依存ライブラリ内の利用まで検出できるとは限らない。更新時は依存関係を含めて CI を回し、下に挙げる挙動修正も利用状況に応じて確かめたい。

26.11.0 の Notable Changes を「既存コードに触れるか」で分ける

下の表は、Notable Changes のうち API・実行挙動・サポート区分に関わる項目を選んだものだ。同じラベルでも、既存の挙動に触れるものと、呼ばなければ何も起きない追加が混ざっている。

項目区分PR
node:sqlite の Database / Statement への改名旧名を別名として維持、ドキュメント上のみ非推奨#65988
monitorEventLoopDelay() の分解能の切り捨てを修正既存の計測値が変わりうる#66115
histogram の CBOR インポート検証を強化既存のインポート処理に触れうる#66098
process.ref / unref が stable に安定性の区分が変わる#66213
RecordableHistogram が 0 を記録できる既存 API の制約緩和#66114
Buffer.stringLength()新規 API#66064
buffer の isLatin1新規 API#66298
http の isValidHeaderName() / isValidHeaderValue()新規 API#66334
histogram の diff() / snapshot()新規 API#66099
--process-timeout=N新規 CLI フラグ#66138
http2 の connectionWindowSize オプション新規オプション#65619
Alpine Linux を tier 2 に昇格サポート区分#63737

出典:Node.js 26.11.0 (Current) リリースノートの Notable Changes。sqlite の新旧名の扱いは、sources に示した同版の非推奨文書の DatabaseSync・StatementSync の項目による。区分は記事による分類

新規 API は名前しか分からない

Buffer.stringLength()、isLatin1、isValidHeaderName() / isValidHeaderValue() は、ノートに名前と PR 番号があるだけで、引数や戻り値の説明はない。--process-timeout=N も同じで、N の単位も、時間に達したときプロセスがどう終わるかも書かれていない。既存の自前実装やミドルウェアをこれらに置き換えるなら、挙動を API ドキュメントで確かめてからにしたい。

ヘッダー検証の 2 関数には、同じ PR で http header validator のベンチマークも追加されている。

perf_hooks を使っている監視は値の連続性を見る

イベントループ遅延を monitorEventLoopDelay() でダッシュボードに出しているなら、更新前後の計測値を比べたい。#66115 は分解能の「切り捨て」の修正だ。同じ負荷でも記録される値の細かさが変わる可能性はあるが、どの程度変わるかはノートにないため、これは推測にとどまる。更新日をグラフに残しておくと、段差の原因を切り分けやすい。

CBOR インポートの検証強化(#66098)も、以前は通っていたデータが拒否される方向の変更に読める。何が拒否されるようになったかは書かれていない。新しく入った histogram.diff() と snapshot() は同じ PR #66099 で、RecordableHistogram は 0 を記録できるようになった。

Notable Changes の外にある挙動修正

コミット一覧には、Notable Changes に載らない挙動の修正も並ぶ。既存コードの結果が変わりうるものを拾うと次のとおり。

  • fs: 再帰的な mkdir が ENOENT を無限にリトライしなくなった(#66340)
  • http: ソケットのエラーがレスポンスエラーの cause として保持される(#66061)、CONNECT リクエストのパスを正規化(#64876)
  • crypto: 短い AES-KW 入力と重複した未知の key usage を拒否、短い AES-GCM IV を許可(いずれも #66237)
  • buffer: 大きなバッファでの負のインデックスを修正(#66325)

エラーの cause を見て分岐している HTTP クライアントや、CONNECT を扱うプロキシは、テストで差分が出ないかを先に確かめる対象になる。同梱物では npm 11.20.0、undici 8.11.2、OpenSSL 3.5.9、ルート証明書 NSS 3.129、タイムゾーンデータ 2026e への更新が入った。

Alpine Linux の tier 2 と、同じ日の 26.11.1

Alpine Linux は tier 2 に昇格した(#63737)。昇格に伴う配布物の変化はノートにないが、同じ日に出た 26.11.1 の配布ファイル一覧には linux-x64-musl の tarball が載っている。

26.11.1 も2026年10月7日付だ。コミット一覧は3件の revert で、「build, doc: move to redesign」、doc-kit の出力切り替え、/tools/doc の依存更新を戻している。いずれもドキュメントのビルドまわりにあたる。sqlite の改名や新規 API に触れる revert は一覧にない。

前のリリースで入った util.throttle などは Node.js 26.10.0 の記事 にまとめた。26 系を追っているなら、今回の確認は node:sqlite の新旧名の扱いと、イベントループ遅延のグラフの前後比較の 2 点から始めるとよい。

出典 種別について