Node.js v23.8.0
目次
Node.js v23.8.0 (Current) の主な変更点と解説
Node.js v23.8.0 (Current) が 2025年2月13日にリリースされました。このバージョンでは、システム CA 証明書の利用、URL Pattern API の導入、zstd 圧縮アルゴリズムのサポートなど、いくつかの重要な改善が含まれています。
1. システム CA 証明書ストアの利用をサポート (macOS・Windows)
変更点
- 新しいコマンドラインオプション
--use-system-ca
が追加 --use-bundled-ca
や--use-openssl-ca
との併用が可能- macOS と Windows でシステムの CA 証明書を利用できるように
背景とメリット
これまでは、Node.js が OpenSSL の CA 証明書を利用するのが基本でした。しかし、環境によってはシステムが管理する CA 証明書を使いたい場合があります。
今回の変更で、macOS・Windows 環境では OS の信頼ストアを使うことで、環境ごとの CA 証明書管理が簡単になります。
2. URL Pattern API の導入
変更点
URLPattern
クラスがnode:url
モジュールに追加- Node.js 24 からはグローバルオブジェクトとして利用可能に
使い方
import { URLPattern } from 'node:url'; const pattern = new URLPattern({ pathname: '/users/:id' }); console.log(pattern.exec('/users/123')); // { pathname: { groups: { id: '123' } }, ... }
背景とメリット
URLPattern
API は、URL のパターンマッチングを簡単に行える仕組みです。
これまでは RegExp
などを使ってパス解析を行っていましたが、この API を利用することで、より直感的に URL の処理ができるようになります。
3. zstd 圧縮アルゴリズムのサポート
変更点
node:zlib
モジュールに zstd 圧縮機能が追加- zstd 圧縮/解凍をサポート
- 実験的機能 として提供
使い方
import { createZstdCompress, createZstdDecompress } from 'node:zlib'; import { pipeline } from 'node:stream'; import { createReadStream, createWriteStream } from 'node:fs'; pipeline( createReadStream('input.txt'), createZstdCompress(), createWriteStream('output.zst'), (err) => { if (err) console.error('Compression failed:', err); else console.log('Compression successful'); } );
背景とメリット
Zstandard (zstd) は、Google などでも採用されている高速・高圧縮のアルゴリズムです。
従来の gzip
や deflate
よりもパフォーマンスが良いため、ファイル圧縮の選択肢が増えます。
4. スレッドに名前を設定可能に
変更点
Worker
コンストラクタにname
オプションを追加- デバッグ時にスレッド名を識別しやすくなった
使い方
import { Worker } from 'node:worker_threads'; const worker = new Worker('./worker.js', { name: 'background-task' }); console.log(worker.threadId); // 名前付きスレッドが識別しやすい
背景とメリット
これまで、Node.js のスレッドは名前を持たなかったため、デバッグ時にどのスレッドがどのタスクを担当しているのか分かりにくいことがありました。
今回の変更により、ワーカースレッドに名前を設定でき、より直感的なデバッグが可能になりました。
5. タイムゾーンデータの更新 (2025a)
変更点
- パラグアイが 2024 年から UTC-3 を恒久採用
- フィリピンの 1991 年以前のデータが改善
背景とメリット
システムの日付・時刻を正しく扱うために、Node.js は定期的にタイムゾーンデータを更新しています。
特に、国や地域によるサマータイムの変更などに対応するため、最新のタイムゾーン情報を保持することが重要です。
6. その他の変更
sqlite
モジュールの拡張: ユーザー定義関数がArrayBufferView
を返せるようにfs
モジュールの改善:FileHandle.readableWebStream
が常にバイトストリームを作成http
の最適化: ガベージコレクションの負担を軽減events
の改善:getMaxListeners()
が 0 リスナーを適切に検出readline
の修正: 中止時の未解決 Promise を解決- QUIC のバグ修正: 通信の安定性向上
まとめ
Node.js v23.8.0 では、セキュリティ強化やデバッグの改善、新しい API の追加など、多くの改良が行われました。
特に、--use-system-ca
オプションの追加、URLPattern
API の導入、zstd 圧縮サポートは、今後の Node.js 開発において重要なポイントとなるでしょう。
📌 次のステップ
- Node.js v23.8.0 の公式リリースノート
- 公式 API ドキュメント
- Node.js の新機能を試して、プロジェクトに活用してみましょう!