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.statSync
の throwIfNoEntry
オプションのエラー処理改善
変更点
fs.statSync
でthrowIfNoEntry: 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 オプションの拡張は、開発者にとって有益な機能です。
📌 次のステップ
- Node.js v23.9.0 の公式リリースノート
- 公式 API ドキュメント
- 新機能を試し、パフォーマンス監視やセキュリティ対策を強化してみましょう! 🚀