logo

Node.js v23.9.0

Node.js v23.9.0の主な変更点と解説

Node.js v23.9.0 (Current) が 2025年2月26日にリリースされました。このバージョンでは、TLSA レコードのクエリ機能や threadCpuUsage API の追加など、パフォーマンスとセキュリティに関する改善が行われています。


1. DNS の TLSA レコードクエリ機能の追加

変更点

  • dns.resolveTLSA(hostname, port) を利用して、TLSA レコードを取得可能に
  • DNS over TLS (DoT) や DNS over HTTPS (DoH) のセキュリティ向上に貢献

使い方

import { resolveTLSA } from 'node:dns/promises';

const records = await resolveTLSA('_443._tcp.example.com');
console.log(records);
// [ { usage: 3, selector: 1, matchingType: 1, cert: 'abcdef...' }, ... ]

背景とメリット

TLSA レコードは、特定のサーバー証明書が適切であることを DNS で保証するものです。
これにより、セキュアな通信の検証が可能になり、MITM 攻撃 (中間者攻撃) のリスクを減らせます。


2. スレッドごとの CPU 使用率取得 API (threadCpuUsage) の追加

変更点

  • 各スレッドの CPU 使用率を取得できる threadCpuUsage() API が追加
  • Node.js のパフォーマンス監視や最適化に役立つ

使い方

import { threadCpuUsage } from 'node:process';

const usage = threadCpuUsage();
console.log(usage);
// { user: 12000, system: 3000 }

背景とメリット

これまでは process.cpuUsage() で全体の CPU 使用率しか取得できませんでしたが、新しい API によりスレッド単位での監視が可能になります。
ワーカースレッドやマルチスレッド処理を最適化する際に役立ちます。


3. CLI の NODE_OPTIONS--cpu-prof* オプションが利用可能に

変更点

  • NODE_OPTIONS 環境変数を使って --cpu-prof* オプションを設定可能に

使い方

export NODE_OPTIONS="--cpu-prof --cpu-prof-interval=1000"
node myscript.js

背景とメリット

これまでは node --cpu-prof script.js のようにコマンドラインから直接指定する必要がありました。
今回の変更で、環境変数で設定できるようになり、CI/CD 環境などでの運用がしやすくなります。


4. fs.statSyncthrowIfNoEntry オプションのエラー処理改善

変更点

  • fs.statSyncthrowIfNoEntry: true を指定したとき、適切なエラーハンドリング (UV_ENOTDIR) を行うように修正

使い方

import { statSync } from 'node:fs';

try {
  statSync('/some/path', { throwIfNoEntry: true });
} catch (err) {
  console.error(err.code); // ENOENT や ENOTDIR など適切なエラーを取得
}

背景とメリット

throwIfNoEntry を使うことで、ファイルやディレクトリが存在しない場合に undefined を返すのではなく、明示的なエラーをスローできます。
この変更により、より適切なエラーハンドリングが可能になりました。


5. crypto モジュールの改善

変更点

  • --use-system-ca オプションが Windows/macOS 以外の OS でも利用可能に
  • OpenSSL の NO_ENGINE ガードの修正
  • ルート証明書の整理と PEM デシリアライズのスキップによるパフォーマンス改善

背景とメリット

これまで、--use-system-ca オプションは macOS と Windows でのみ利用可能でしたが、今回の変更により Linux など他の環境でも利用できるようになりました。
これにより、OS の信頼ストアを利用した証明書管理が可能になり、より柔軟なセキュリティ設定が可能になります。


6. urlpattern のパフォーマンス最適化

変更点

  • URLPattern の正規表現処理が最適化され、より高速に

背景とメリット

URLPattern は v23.8.0 で導入された機能ですが、今回のアップデートでさらにパフォーマンスが向上しました。
大量の URL をパターンマッチングするようなアプリケーションでより高速に処理できるようになります。


まとめ

Node.js v23.9.0 では、セキュリティやパフォーマンスを向上させるためのいくつかの重要な変更が加えられました。
特に、TLSA レコードのサポート、スレッドごとの CPU 使用率取得、CLI オプションの拡張は、開発者にとって有益な機能です。

📌 次のステップ

logo