See the API documentation for more examples. +
Audience
+ +This project is for those interested in +
-
+
- server-side javascript +
- developing evented servers +
- developing new web frameworks +
About
+Node's goal is to provide an easy way to build scalable network programs. In the above example, the 2 second delay does not prevent the server from @@ -65,13 +87,12 @@ difficult to use. -
-Node will show much better memory efficency under high-loads +Node will show much better memory efficiency under high-loads than systems which allocate 2mb thread stacks for each connection. -
Users of Node are free from worries of dead-locking the
-process—there are no locks. In fact, there arn't even blocking
+Users of Node are free from worries of dead-locking the
+process—there are no locks. In fact, there aren't even blocking
functions. Because nothing blocks, Node can be given to less-than-export
programmers to build servers.
@@ -79,7 +100,7 @@ programmers to build servers.
Ruby's Event Machine
or
Python's Twisted.
-But Node takes the paradigm.
+But Node takes the mode event-based API further.
In other systems, there is always a blocking call to start the event-loop.
Typically one sets up behavior through callbacks and at the end starts the
server through a call like EventMachine::run()
. In Node,
@@ -87,13 +108,13 @@ there is no such thing. By default Node enters the event loop after
executing the input script. Node exits the event loop when there are no more
callbacks to perform.
-
Node's HTTP server has grown out of my difficulties developing -and working with web servers. For example, streaming data through most web -frameworks is difficult or impossible. Or like the oft-made false +
Node's HTTP API has grown out of my difficulties developing +and working with web servers. For example, streaming data through most web +frameworks is difficult or impossible. Or like the oft-made false assumption that all message headers have unique fields. Node attempts to -correct these problems by providing a low-level but complete HTTP API. -Coupled with Node's purely evented infrastructure, it will make a solid foundation for -future frameworks. +correct these and other problems in its API. +Coupled with Node's purely evented infrastructure, it will make a solid +foundation for future frameworks.
But what about multiple-processor concurrency? Threads are necessary to scale programs to multi-core computers. The name Node should @@ -105,9 +126,6 @@ to be able to spawn new processes (probably using the Web Workers API), but this is something that fits well into the current design. -
Node is released under an MIT license.
- -Download
The git repo @@ -122,8 +140,10 @@ href="http://s3.amazonaws.com/four.livejournal/20090527/node-0.0.1.tar.gz">node-
Build
Node eventually wants to support all POSIX operating systems (including -Windows with mingw) but at the moment it is only being tested on Linux, -Macintosh, and FreeBSD. The build system requires Python. V8, on which +Windows with MinGW) but at the moment it is only being tested on +Linux, +Macintosh, and +FreeBSD. The build system requires Python. V8, on which Node is built, supports only IA-32 and ARM processors. V8 is included in the Node distribution. There are no dependencies.