Wiki page detailing API changes between v0.4 and v0.2
Major changes since v0.2:
Stream.prototype.pipe() method. Functionality was
      enhanced and API simplified.
      Buffer allocation. Node uses
      Buffer objects in many places - it was noticed that they
      were relatively slow to allocate and difficult to garbage collect. The
      implementation changed to use pure javascript objects instead of
      an ObjectWrap which improved performance.
      require(). The main
      changes are:
      require() calls realpath. That is,
        it resolves symbolic links. This allows symlinked modules to make
        relative requires.
        require() now has a primitive understanding of
        package.json. It looks for the main
        script. This allows require() to work on package
        directories directly.
        node_modules/, is
        searched in the current directory for any modules. This will
        hopefully encourage programmers to bundle modules rather than
        rely on a global namespace.
      v3.1.2.
      This includes much work including V8's new compilation infrastructure
      and a GDB plugin on Linux.
      Read the
        full V8 ChangeLog.
      os module was added by Brian White which exposes
      a lot of basic but useful system information: os.cpus(),
        os.freemem(), os.totalmem(), os.loadavg()