This is mainly a retooling of the irc library by Martyn Smith in coffeescript. I've been looking for an excuse to do something in coffeescript to learn it, and this is generally "the project" I do.
The core of the implementation if very similar to Martyn's code, but instead of having a very large dispatch method with a multi-argument 'case' statement, I have designed the core state machine around EventEmitter.
more to come soon