Node v0.12.0 (Stable)
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.
maxSocketsare no longer limited to 5. The default is now set to
Infinitywith 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
flushHeadersto ensure time to first byte is low and proxied connections are held open.
- 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.
- Added APIs for asynchronous SNI callbacks, OCSP stapling, and storage events.
- 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.
execSynchave 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!
- 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.
- 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
- 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: https://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz
Macintosh Installer (Universal): https://nodejs.org/dist/v0.12.0/node-v0.12.0.pkg
Windows Installer: https://nodejs.org/dist/v0.12.0/node-v0.12.0-x86.msi
Windows x64 Installer: https://nodejs.org/dist/v0.12.0/x64/node-v0.12.0-x64.msi
Windows x64 Files: https://nodejs.org/dist/v0.12.0/x64/
Linux 32-bit Binary: https://nodejs.org/dist/v0.12.0/node-v0.12.0-linux-x86.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v0.12.0/node-v0.12.0-linux-x64.tar.gz
Solaris 32-bit Binary: https://nodejs.org/dist/v0.12.0/node-v0.12.0-sunos-x86.tar.gz
Solaris 64-bit Binary: https://nodejs.org/dist/v0.12.0/node-v0.12.0-sunos-x64.tar.gz
Other release files: https://nodejs.org/dist/v0.12.0/
-----BEGIN PGP SIGNED MESSAGE----- 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 -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJU1To8AAoJEFCjBR+IjGKNPIQQAJOepQMZctwstD1iiUcrKRo4 iZMgdHUe4bcBcGfkeB2X8RD4WYIoYxfL/6EF7IfjapiQc8W3Zo1IlTQqRFR1RqRz HayhDQu5qPSE6EygT0le6eFbVsn7V1SdP+91umZ+kJVlUal0Li0ZWzSs94iFaok/ SBgV92WegQBzGwYTxHa/tN2nJ8xkSJDSaqxmiavj+5Ve2phOuKo+vxYnP9viXIT4 MsohnZyovm4BaOg/DWj8Jn5X42SVzhEiLDjZQxxku64IzjZPjflsYbuBIM8hMnb8 FwIp92Cp48qsm/l4EX8PN6FLoXo+M82kT3i4rY2XLl7MxwUv4jrh4LTTHG+pPi9X LEu58em/xgp/IN+cobc4vs5yWKB98FQNOL+F6ketqyLQwfyr20kDuovcNqiuJX5V SIaeU7qyykFoj2qERU0Mk1v0FgLUTjlwwH5h9IcjagV4JFywcIJiNriibz/Ta6rA d2KzKyva3rnj4eL4Wa4F9yyLCX9j3sWCE/ZMuVb2NJnYl7RPgr3M+PEcMQVJbdUx b1lz+Yyo+NuXUXR9j9OtXscXVrSa8Bqxtc3heXajDzWbGdU8ZPW3DhULtQcPFAth DLolLXEcJn6QOQSC06Y+D3LZ3jJbSX0jGb6bvQLksRkPltSSI5VgHSBjlGGkyEVt UpmTqbfBdzs1UfeGwL6N =nSHJ -----END PGP SIGNATURE-----