0.2.xと比較した重要な変更:
- TLS / SSLシステムの完全な書き換え。 以前は、OpenSSLへのバインドはソケットコードと深く関連していました。 このバインディングは、各接続を「ストリーム」のペア(二重暗号化ストリームと二重プレーンテキストストリーム)として表すように再設計されました。 暗号化されたストリームは、汎用のStream.prototype.pipe()メソッドを使用して単純なTCPソケットと通信します。 機能が拡張され、APIが簡素化されました。
- バッファの容易な割り当て。 Nodeは多くの場所でBufferオブジェクトを使用します-そして、それらは比較的ゆっくりとインスタンス化され、ガベージコレクション中に収集するのが困難であることが顕著でした。 ObjectWrapの代わりに純粋なJavaScriptオブジェクトを使用するように実装が変更され、パフォーマンスが向上しました。
- 今日はすでに十分な経験があるので、パッケージマネージャーをより適切にサポートするために、モジュールロードシステムにいくつかの変更を加えました。 特に、NPMに大規模なネストのシンボリックリンクを再分類させ、モジュールの「パッド」を追加して、require()の制限を回避させました。 主な変更:
- require()はrealpathを呼び出します。 その結果、シンボリックリンクが許可されます。 これにより、symlinkモジュールは相対的なrequireを実行できます。
- require()がpackage.jsonの原始的な理解を持つようになりました。 彼はメインスクリプトを探しています。 これにより、require()がパッケージディレクトリを直接操作できるようになります。
- 特別な名前のディレクトリnode_modules /は、現在のディレクトリを検索してモジュールをロードします。 これにより、グローバル名前空間に依存する代わりに、アプリケーションにパッケージを配置したい開発者を喜ばせます。
これらの機能の詳細については、モジュールシステムのドキュメントを参照してください 。 - MinGWを使用してネイティブのWindowsビルドを構築するための、未完成だが悪くないスタートは、Ber Bilderによって行われました。 組み立て手順はWikiにあります。
- NodeはV8の最新バージョンv3.1.2に更新されました。 これには、新しいV8コンパイルインフラストラクチャやLinux用のGDBプラグインなど、多くの作業が含まれます。 V8の変更点の完全なリストを読んでください。
- V8デバッガーの新しい組み込みクライアントがNodeに追加されました。 まだ非常に原始的ですが、単純なタスクには便利です。 これは小さな紹介ビデオといくつかのドキュメントです。
- osモジュールはBrian Whiteによって追加されました。これは、システムに関する多くの基本的
os.cpus(), os.freemem(), os.totalmem(), os.loadavg()
有用な情報を提供します:os.cpus(), os.freemem(), os.totalmem(), os.loadavg()
。 - そしてもちろん、多くのバグ修正。 変更点の全リストをお読みください。