Node v0.12.0 (Stable)

The Node.js Project

We are excited to announce the availability of Node.js v0.12! It has been a long process, and we want to thank contributors and all of the community who waited patiently for this event. Node.js has such a vibrant and enthusiastic community, and we're very lucky to have you all supporting us.

Node.js has seen many changes between v0.10 and v0.12. There is a listing of changes documented on the wiki. Note that this release includes API updates that may require dependency updates. Following are some highlights:

  • Streams 3
    • The Streams implementation now works the way you thought it already should, without introducing any changes to the API. Basically this means no more getting stuck in "old mode", there are only streams that are flowing or not.
    • Streams now support the use of cork and uncork mechanisms to prevent flushing writes out to the system if an application is going to be performing many writes in a row. There is an implicit uncork performed when you end a writable stream.
  • HTTP
    • maxSockets are no longer limited to 5. The default is now set to Infinity with the developer and the operating system given control over how many simultaneous connections an application can keep open to a given host.
    • Proper KeepAlive support means that sockets will stay open until they timeout at the configured time, are closed by the remote side, or the process exits. Developer's no longer have to make sure requests have been pipelined to keep the socket open, or use an alternative module to get that support.
    • Developers can also now explicitly flushHeaders to ensure time to first byte is low and proxied connections are held open.
  • Cluster
    • Now has two modes of operation, the new default is a round robin distribution mechanism where the master accepts new connections and distributes them to your workers. If you want you can still opt back into the old method where your workers are responsible for acception connections.
  • TLS
    • We have the new TLSWrap mechanism under the hood, this eliminates quite a few of the hops back and forth between JavaScript and our C++ implementations.
    • Added APIs for asynchronous SNI callbacks, OCSP stapling, and storage events.
  • Buffer
    • We use a more accurate mechanism for allocating memory for buffers now, which means you'll see less overhead and impact from holding onto to small slices of Buffers. This reduces the amount of memory pressure on the system, which means GC runs are quicker, which means Node.js is on CPU less, and thus lower latency for your applications.
  • child_process
    • spawnSync/execSync have been added to facilitate synchronous child processes, warning your node process won't make forward progress while waiting for the child to exit, caveat emptor!
  • Crypto
    • Added APIs for loading custom engines for use with compiled in OpenSSL.
    • More APIs support supplying the pass phrases.
    • Added APIs for RSA public/private key encryption/decryption.
  • VM
    • The module is now based on the Contextify module, which shares values from the sandbox to avoid missing changes inside the execution from appearing in the parent context.
  • Initial support for ECMAScript Internationalization API 1.0 (ECMA-402)
    • By default, Node.js v0.12.0 binaries are shipped with ECMA-402 support, but only for the English language. In other words, the ECMA-402 API is working as you would expect, but only data for the English language is included. You can find more info on how to include more languages in the Wiki.

These are just some of the changes you can find in this release of v0.12, and it's thanks to the hard work of the community and the members of team curating Node.js.

We are also pleased to report that this release of Node.js has tests passing on all of our supported platforms. On the one hand, this seems obvious (what are tests for if not to verify before you release it?!), but this is actually the first release of Node.js that has operated under this constraint. Requiring that all tests pass before releasing Node.js marks an important development for the project, and is essential for building a solid path moving forward.

We'll obviously be spending a couple weeks firefighting any immediate issues for v0.12, but the team is excited to start pulling in the items and discussing what the roadmap will look like next for Node.js. We want to make sure we're scoping future versions of Node.js so we can have confidence in knowing we're on the right path and that we're ready to release based on the standards we have set for ourselves.

Quite a few members of the team will be attending NodeSummit February 9th through the 11th in San Francisco. If you're around for that event please make sure to find us and give us feedback on what you would like to see from Node.js.

Source Code:

Macintosh Installer (Universal):

Windows Installer:

Windows x64 Installer:

Windows x64 Files:

Linux 32-bit Binary:

Linux 64-bit Binary:

Solaris 32-bit Binary:

Solaris 64-bit Binary:

Other release files:




Hash: SHA512

4f53a1dac68057d700964707adb5e54302969dab  genccode.exe
146930a2bdb88a3e12cb8d3a359e7197bbbde695  genccode.pdb
6ec82639faae028e5d9c90e123f7220e7e915187  genrb.exe
817c5b18f4cd8d2eed80815fc030a1342b4f88cd  genrb.pdb
151036790bd98204764d302f3df2ab2685db6f54  iculslocs.exe
228a3dcf968f6c552788fafc1ef84baee3e7450e  iculslocs.pdb
8665404bb5cf3e730ba633c5b8184250bae1cafd  icupkg.exe
819de4c86d0aad67cf62e5f4913910f1112ef1c9  icupkg.pdb
596eff06fefc11ef10f345ea37e7e05f72533c67  node-v0.12.0-darwin-x64.tar.gz
dddd5306a0c7e551aae8a8685b365f8c25a9d63a  node-v0.12.0-darwin-x86.tar.gz
64fb5260a4a0f914b62a80066d7955856a04703a  node-v0.12.0-linux-x64.tar.gz
765cb24d17625221ecdd8518907c265b99ce18d2  node-v0.12.0-linux-x86.tar.gz
6964fe9bd299eea2844e0dc0bb6f5cae70e1f03c  node-v0.12.0-sunos-x64.tar.gz
3988db298cfe614370481ab5abba3bd83b65570f  node-v0.12.0-sunos-x86.tar.gz
20d936afd83f819c92826afdc87815a3c96884d2  node-v0.12.0-x86.msi
8879163ab75f611abb49e250f3158c6a98e37d25  node-v0.12.0.pkg
d08810034d170c19759cb38bfc9442ab6b0ebc7a  node-v0.12.0.tar.gz
c54021b701cebc3ba713c920531ca4fdc96cf9fe  node.exe
cce4bba695a8d4953977b3bf5193a9f16b24e003  node.exp
4983bf4ef56b1af2e5e9db9e67c62250b5455016  node.lib
ffa621154420292dcdd39cc4bd91a5e08bc5f622  node.pdb
05bbc6228fb49005b2fd0858544d0dc42e6b6f0c  openssl-cli.exe
0bd5916cbadeab0f5995728142279049e6e9d866  openssl-cli.pdb
84bce5da7c5cc563d224d0d80e05a9c9fc3614b2  x64/genccode.exe
9bc57d86caba460d6b0dc864db832956cf68096c  x64/genccode.pdb
4ae96a5ec2619f9cd60e127cb4ad9e0147dcf58c  x64/genrb.exe
4ff14345e733f266ed86679e88e8461825bc0c2d  x64/genrb.pdb
4ba7525312c7e7d1d489f89af8d9b98d743d2397  x64/iculslocs.exe
1a2cebefcaee90e81be67bc079b48a37b5a7f63a  x64/iculslocs.pdb
251d768eba9543da5ae9a8d5617c9fc58069d413  x64/icupkg.exe
f4647ad8db148b89475634000e0c0cd7f8f47b04  x64/icupkg.pdb
a34650db220cb1886bb497edb72474e83a4dbe77  x64/node-v0.12.0-x64.msi
71cf52c0ff9e1457364962697fb8798925241828  x64/node.exe
dbd4614bf15b037c0ed2cb631bad0282e420c3ff  x64/node.exp
709ff6f74f10b184e09c45e893a77248455fb452  x64/node.lib
e14399d9cc5df344e6c4dd557ec2a8c62973b6d3  x64/node.pdb
a014b76f8c36768a15532ccb5e8d5e904bc4dbb0  x64/openssl-cli.exe
0827c6819bc7a2b100f14ffbe0b431e955c73b89  x64/openssl-cli.pdb
Comment: GPGTools -

Last Updated
Feb 06, 2015
Reading Time
5 min read
Edit this page