Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

a full featured i/o framework for node.js

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md
 __    __    ______     ______    __  ___         __    ______   
|  |  |  |  /  __  \   /  __  \  |  |/  /        |  |  /  __  \  
|  |__|  | |  |  |  | |  |  |  | |  '  /         |  | |  |  |  | 
|   __   | |  |  |  | |  |  |  | |    <          |  | |  |  |  | 
|  |  |  | |  `--'  | |  `--'  | |  .  \    __   |  | |  `--'  | 
|__|  |__|  \______/   \______/  |__|\__\  (__)  |__|  \______/  

a full featured i/o framework for node.js

v0.7.8

hook.io creates a distributed node.js EventEmitter that works cross-process / cross-platform / cross-browser. Think of it like a real-time event bus that works anywhere JavaScript is supported.

You create custom i/o scenarios by picking and choosing from an extensive library of tiny, independent, autonomous "hooks" that seamlessly work together.

Email List: http://groups.google.com/group/hookio

20 Video lessons available at: http://youtube.com/maraksquires and http://github.com/hookio/tutorials

Features :

  • Build large, decoupled, distributed, and fault tolerant I/O heavy applications in node.js
  • Create hooks on ANY device that supports JavaScript (cross-browser support via socket.io)
  • Throw any block of sync or async code on a new process with a callback
  • Easily scale any tcp based messaging infrastructure (such as clustering socket.io chat rooms in memory)
  • Interprocess Message Publishing and Subscribing done through EventEmitter2 and dnode
  • Messaging API inherits and mimics Node's native EventEmitter API (with the help of EventEmitter2)
  • Spawning and Daemonizing of processes handled with Forever
  • Easily connect / disconnect hooks "hot" without affecting other services
  • Core library currently checking in at about ~450 lines of code

Available Hooks (more coming soon)

  • cron: Adds and removes jobs that emit hook.io events on a schedule
  • couch: Emit hook.io events based on your CouchDB _changes feed
  • irc: Full IRC bindings
  • helloworld
  • logger: Multi-transport Logger (Console, File, Redis, Mongo, Loggly)
  • mailer: Sends emails
  • sitemonitor: A low level Hook for monitoring web-sites.
  • request: Simple wrapper for http://github.com/mikeal/request
  • repl: Rainbow Powered REPL
  • twilio: Make calls and send SMS through Twilio
  • twitter: Wrapper to Twitter API
  • webhook: Emits received HTTP requests as hook.io events (with optional JSON-RPC 1.0 Support)
  • wget: Downloads files using HTTP. Based on the http-get module by Stefan Rusu

Getting Start / Demo

 npm install hook.io-helloworld -g

Now run:

 hookio-helloworld

Spawn up as many as you want. The first one becomes a server, the rest will become clients. Each helloworld hook emits a hello on an interval. Now watch the i/o party go!

Blog Posts

hook.io for dummies: http://ejeklint.github.com/2011/09/23/hook.io-for-dummies-part-1-overview/ Distribute Node.js Apps with hook.io: http://blog.nodejitsu.com/distribute-nodejs-apps-with-hookio

Tests

All tests are written with [vows][7] and require that you link hook.io to itself:

  $ cd /path/to/hook.io
  $ [sudo] npm link
  $ [sudo] npm link hook.io
  $ npm test

Core Hook.io Team

Marak Squires, Charlie Robbins, Jameson Lee

Contributors (through code and advice)

Substack, h1jinx, AvianFlu, Chapel, Dominic Tarr, Tim Smart, tmpvar, kadir pekel, perezd, mklabs, temsa

Something went wrong with that request. Please try again.