Node.js Bloghttp://blog.nodejs.org/
The Blog about Node.jsFri, 06 Feb 2015 22:57:14 GMTenweekly1http://nodejs.org/http://nodejs.org/images/logo-light.pngNode.jshttp://blog.nodejs.org/
Node v0.12.0 (Stable)http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/
Fri, 06 Feb 2015 22:03:56 GMTundefinedhttp://blog.nodejs.org/2015/02/06/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.

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.

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.

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.

]]>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.

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.

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.