Node Roundup: NodeConf Slides, Kanso, Whiskey, Redback

2011-05-11 00:00:00 +0100 by Alex R. Young

NodeConf Slides

Ryan Dahl's NodeConf slides includes some background on liboio with a
focus on Windows support.

Today Node runs on Windows via Cygwin. This is an unacceptable port. Cygwin is slow, old, buggy. Users hate it

I've never really worked with Windows, so this was all new to me:

IOCP supports Sockets, Pipes, and Regular Files. That is, Windows has true async kernel file I/O. (In Unix we have to fake it with a userspace thread pool.)

The work on liboio certainly sounds fascinating -- it seems like it
won't just be Windows users who benefit from the work going into the
next generations (0.5, 0.6) of Node.

Isaac Schlueter's slides
are about npm 1.0, which covers global and local modules (in case you're
still confused). He also mentions an initiative called npat:

To get on the bandwagon: npm set npat true

This is a kind of distributed continuous integration testing system,
based on the CPAN Testing Service.


Kanso (GitHub: caolan / kanso, npm: kanso, Apache 2.0
License) by Caolan McMahon is a Node module that makes writing
CouchApps easier, with added focus on the client-side:

What's needed is a harmonious environment which shares code between the browser and server, without 'breaking the web'. Search engines and other users should still have access to key content, even if we accept a less featureful experience. This is the problem Kanso was designed to solve, by implementing CouchDB's design doc API in the browser.

CouchApps are JavaScript and HTML5 applications served by CouchDB:

If you can fit your application into those constraints, then you get CouchDB's scalability and flexibility "for free" (and deploying your app is as simple as replicating it to the production server).

Kanso provides command-line and libraries tools to make this whole
process easier. If you're still not sold, try following the Kanso
which will walk you through
the entire process of setting up Kanso and building a blog application.


Whiskey (Apache 2.0 License) is a test runner that runs each test file in a separate file, complete with
timeouts, setup/teardown, test file initialization, friendly output,
test coverage, and scope leak reporting.

It works in a similar way to
Expresso in that tests are run with the whiskey command-line script.


Redback (GitHub: chriso / redback, npm: redback, MIT
License) by Chris O'Hara is a high-level Redis library. It provides an
interface to Redis data types, including: List, Set, SortedSet, Hash,
Channel, and Cache.

Redback even has pub/sub provider support:

var channel = redback.createChannel('chat').subscribe();

// To received messages
channel.on('message', function(msg) {

// To send messages