A new stable version of node.js has been released - 0.6.0.
Download (tar.gz, linux) Download (exe, windows)SiteDocumentationSince this is a major-release, changes have been made to the API without backward compatibility. If something has stopped working in your application / module, this wiki page will help you with the migration:
https://github.com/joyent/node/wiki/API-changes-between-v0.4-and-v0.6')
Major changes compared to the 0.5.x branch:
Most of the node has been redesigned to support Windows. There were concerns that these changes would lead to poor performance on UNIX systems, but everything turned out to be much better. Here, for example, benchmark results under Linux system:
| v0.4.12 (linux) | v0.6.0 (linux) |
---|
http_simple.js / bytes / 1024 | 5461 r / s | 6263 r / s |
io.js read | 19.75 mB / s | 26.63 mB / s |
io.js write | 21.60 mB / s | 17.40 mB / s |
startup.js | 74.7 ms | 49.6 ms |
In http and io benchmarks, more is better. At startup, less is better. HTTP Benchmark was conducted using 600 connections from three servers on a 10 gigabit network.
In the previous version 0.4 we could run Node on Windows only under Cygwin. Due to the transition to the libuv and native Windows API, we can observe significant improvements in the speed of work under Windows:
| v0.4.12 (windows) | v0.6.0 (windows) |
---|
http_simple.js / bytes / 1024 | 3858 r / s | 5823 r / s |
io.js read | 12.41 mB / s | 26.51 mB / s |
io.js write | 12.61 mB / s | 33.58 mB / s |
startup.js | 152.81 ms | 52.04 ms |
We believe that these are not bad results for the intermediate stage, before full support for Windows: some things still need to be done, for example, at the moment, there is no simple way to create native modules using MS Visual Studio. Work on adding this and many other functionality will be carried out in the next releases of the 0.6.x branch.
We also plan to significantly reduce the intervals between releases. The next stable branch will be tentatively in January. Over time, we are going to make releases in accordance with the 6 week interval of Google Chrome.
Thanks to all contributors for the code, tests, documentation and bug reports!
Here is a list of changes in v0.6.0, compared with v0.5.12:
2011.11.04, Version 0.6.0 (stable)
- print undefined values in REPL (Nathan Rajlich)
- doc improvements (koichik, seebees, bnoordhuis, Maciej Małecki, Jacob Kragh)
- support native addon loading in windows (Bert Belder)
- rename getNetworkInterfaces () to networkInterfaces () (bnoordhuis)
- add pending accepts knob for windows (igorzi)
- http.request (url.parse (x)) (seebees)
- # 1929 zlib Respond to 'resume' events properly (isaacs)
- stream.pipe: Remove resume and pause events
- test fixes for windows (igorzi)
- build system improvements (bnoordhuis)
- # 1936 tls: does not emit 'end' from EncryptedStream (koichik)
- # 758 tls: add address (), remoteAddress / remotePort
- # 1399 http: emit Error object after .abort () (bnoordhuis)
- # 1999 fs: make mkdir () default to 0777 permissions (bnoordhuis)
- # 2001 fix pipe error codes
- # 2002 Socket.write should reset timeout timer
- stdout and stderr are blocking when associated with file too.
- remote debugger support on windows (Bert Belder)
- convenience methods for zlib (Matt Robenolt)
- process.kill support on windows (igorzi)
- process.uptime () support on windows (igorzi)
- Return IPv4 addresses before IPv6 addresses from getaddrinfo
- util.inspect improvements (Nathan Rajlich)
- cluster module api changes
- Downgrade V8 to 3.6.6.6