From Free Software Directory
Revision as of 10:38, 12 April 2011 by WikiSysop (talk | contribs)$7

(diff) ← Older revision | Approved revision (diff) | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

evented I/O for V8 javascript.

Evented I/O for V8 javascript. Node's goal is to provide an easy way to build scalable network programs. This is in contrast to today's more common concurrency model where OS threads are employed. Thread-based networking is relatively inefficient and very difficult to use. Node will show much better memory efficiency under high-loads than systems which allocate 2mb thread stacks for each connection. Furthermore, users of Node are free from worries of dead-locking the process, there are no locks. Almost no function in Node directly performs I/O, so the process never blocks. Because nothing blocks, less-than-expert programmers are able to develop fast systems. Node is similar in design to and influenced by systems like Ruby's Event Machine or Python's Twisted. Node takes the event model a bit further: it presents the event loop as a language construct instead of as a library. In other systems there is always a blocking call to start the event-loop. Typically one defines behavior through callbacks at the beginning of a script and at the end starts a server through a blocking call like EventMachine run(). In Node there is no such start-the-event-loop call. Node simply enters the event loop after executing the input script. Node exits the event loop when there are no more callbacks to perform.


"IRC [] " IRC general channel


Download version 0.10.1 (developmental)
released on 21 March 2013


Related Projects


LicenseVerified byVerified onNotes
ExpatKelly Hopkins5 May 2010
BSD 3ClauseKelly Hopkins5 May 2010
BSD 2ClauseKelly Hopkins5 May 2010

Leaders and contributors

See Node AUTHOR file Maintainer

Resources and communication

AudienceResource typeURI
SupportMailing List Subscribe

Software prerequisites

This entry (in part or in whole) was last reviewed on 5 May 2010.


Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.