2011年7月14日、Node.jsの開発版であるバージョン0.5.1 (unstable)が公開されました。

このリリースは、次期安定版に向けた機能拡張と、特定のプラットフォームにおける重要な修正を含む重要なアップデートです。

今回の更新では、V8エンジンが3.4.10へとアップグレードされたほか、内部ライブラリであるlibuvの改善が行われました。

開発版ならではの活発な変更が加えられており、Node.jsの適用範囲を広げるための土台が強化されています。

URL解析における国際化対応

本バージョンでは、url.parseにおいてIDNAおよびPunycodeがサポートされました。

これにより、日本語などの多言語を含むドメイン名(国際化ドメイン名)の解析が標準機能で容易に行えるようになっています。

JavaScript
// URLモジュールを使用したPunycodeの解析例
const url = require('url');

// 日本語ドメインを含むURLをパース
const result = url.parse('http://xn--wgv71a119e.jp/');

console.log(result.hostname); 
// 出力: xn--wgv71a119e.jp

64bit環境と特定OSへの最適化

ファイルシステム周辺では、64bitプラットフォームにおいて大容量のファイルを正常に扱えない問題が修正されました。

これは大規模なデータを扱うサーバーサイドアプリケーションにおいて極めて重要な改善です。

また、FreeBSD amd64環境におけるos.totalmemの取得バグも解消され、マルチプラットフォームでの信頼性が向上しています。

モジュールとストリームの仕様変更

開発の利便性を高めるために、APIレベルでの変更も行われています。

変更箇所内容
Stream.pipe出力先のストリーム(destination)を返すように変更 | 連結が可能に
requireモジュールの公開メンバとなり、外部からのアクセスが可能に

これにより、Stream.pipeを連続して呼び出すメソッドチェーンのような記述がしやすくなり、コードの可読性向上が期待できます。

まとめ

Node.js 0.5.1は、Punycode対応や64bit環境のバグ修正など、実運用を見据えた細かなブラッシュアップが光るリリースとなりました。

特にストリームの挙動変更やV8の更新は、パフォーマンスと記述力の両面に寄与するものです。

今後も開発版での成果が、安定版へどのように統合されていくのか注目が集まります。