Complete rewriting of the TLS / SSL system. Previously, binding to OpenSSL was deeply intertwined with socket code. This binding was remade to instead represent each connection as a pair of “streams”: a duplex encrypted stream and a duplex plain text stream. The encrypted stream is associated with a simple TCP socket using the general-purpose method Stream.prototype.pipe (). The functionality has been extended and the API is simplified;
Lightweight allocation of buffers (Buffers). Node uses objects of the Buffer class in many places - and it was noticeable that they were relatively slow to instantiate, and they were hard to collect during garbage collection. The implementation was modified to use pure JavaScript objects instead of ObjectWrap, which increased performance;
Having already had enough experience today, we made some modifications of the module loading system to better support package managers. In particular, we forced NPM to re-sort the nested symlinks and add a “pad” for the modules in order to bypass the limitations in require (). Major changes:
require () calls realpath. Therefore, symbolic links are allowed. This allows the symlink module to perform relative require;
require () now has a primitive understanding of package.json. He is looking for the main script. This allows require () to work directly with package directories;
A specially named directory, node_modules /, is searched for the current directory to load any modules. This will please developers who like to put packages into applications instead of depending on the global namespace.
A half-finished, but not a bad start to building a native Windows build using MinGW was undertaken by Ber Bilder. Build instructions can be found on the Wiki ;
Node has been updated to the latest version of V8, v3.1.2. This includes a lot of work, for example, the new V8 compilation infrastructure and the GDB plugin for Linux. Read the full changelog V8 ;
A new built-in client for the V8 debugger has been added to the Node. It is still very primitive, but useful for simple tasks. Here is a small intro video and some documentation ;
The os module was added by Brian White, which provides a lot of basic, but useful information about the system: os.cpus(), os.freemem(), os.totalmem(), os.loadavg() ;