2年ぶりの最新版となる「Node 0.12」がリリース

 Node.js開発チームは2月6日、最新の安定版となる「Node v0.12.0」をリリースした。Streams3の実装、クラスタリングの強化など、多数の新機能が導入されている。

 Node.jsはGoogle ChromeのJavaScriptランタイムエンジン「V8」をベースに、スタンドアロンのJavaScript実行環境や各種ライブラリ、モジュール管理ツールなどを提供するプラットフォーム。イベント主導型、ノンブロッキングI/Oモデルなどが特徴で、小規模なコマンドラインツールの作成から大規模なネットワークアプリケーションまでさまざまな用途で利用できる。

 Node 0.12系は2013年3月にリリースされたバージョン0.10系に続く安定版で、1年11ヶ月ぶりの新版リリースとなった。

 Node 0.12での大きな変更点として、streamモジュールの改良が上げられている。この実装は「Streams3」と呼ばれており、内部実装の改善や互換性のために残されていた「old mode」の廃止が行われている。これにより、たとえば多くのWriteを連続して行うアプリケーションでflushを防ぐことができるという。

 HTTP関連ではソケット数の上限(5つ)が撤廃され、無限に作成可能となった。また、KeepAliveサポートを強化し、設定されたタイムアウト時間が経過する、もしくはリモート側で切断されるまでソケットをオープン状態にし続けることが可能になった。flushHeadersのサポートも加わった。

 クラスタリング機能も強化され、2種類のモデルを利用できるようになった。新たにworkerではなくmasterが接続の割り振りを行うラウンドロビン型のクラスタリングが可能になり、こちらがデフォルトとして利用されるようになった。従来の手法も継続して利用できる。child_processモジュールも強化され、非同期処理のためのspawnSync/execSync関数が加わった。

 TLS(Transport Layer Security)では新たにTLSWrapというメカニズムを導入した。JavaScriptとNode.jsのC++実装の間でのやりとりを削減できるという。また、非同期SNIコールバック、OCSPステープリング、ストレージイベントなどのためのAPIが追加された。

 そのほか、性能強化に向けてバッファへのメモリ割り当てをより正確にし、ガベージコレクタの効率化を図るといった改善や、RSA公開鍵/秘密鍵を利用した暗号と復号が可能になり、OpenSSLでコンパイルされたカスタムエンジンの読み込みのためのAPIも加わっている。標準化関連では、ECMAScript Internationalization API 1.0(ECMA-402)の初期サポートが加わった(英語データのみ)。

 Node.jsのソースコードとバイナリはプロジェクトのWebサイトより入手できる。WindowsとMac OS X向けのインストーラも用意されている。

Node.js
http://nodejs.org/