Inspired by frameworks such as Ruby's Event Machine or Python's Twisted, Node.js avoids thread based networking and moves to an event driven model, where one thread executes all the code as demanded by events, such as the opening of network connections, or the completion of I / O operations. This has the advantage of being memory efficient and avoiding dead-lock issues, as there are no locks. Within Node.js code, HTTP is a first class protocol, with a library designed to allow for the handing of streamed data through the framework.
The 0.2.0 release of Node.js has been tested on Linux, Macintosh and Solaris and also runs on Windows, FreeBSD and OpenBSD. The source can be downloaded from the Node.js site. Python 2.4 or better is required to build Node.js and the V8 engine (on which Node.js is built) only supports ARM and 32-bit and 64-bit Intel architectures. Node.js is licensed under a number of licences; V8 is under a BSD licence and other components are under the GPL2 or MIT licences, while the overall licence is an MIT like licence.