Skip to content
sdepold edited this page Aug 6, 2010 · 377 revisions

Adding to this page

When you add a framework to this page, have a look at how others have done so, it should be a single item, with a link to the project’s source code, and a short description (one line after formatting has been applied).

If you see a module without a description, feel free to edit the page and add it in, any contributions are appreciated.

When you edit this list, also add your module to http://wiki.github.com/ry/node/library-compatibility so that users will know which versions of Node it was tested with.

  • biggie-router — Router for the biggie framework. Inspired by Sinatra and JQuery.
  • connect — Robust high performance middleware framework
  • journey — liberal JSON-only HTTP request router
  • node-router — Simple Sinatra-like http server based on fu.js from the original node-chat demo.
  • node.routes.js — A simple url router
  • nozzle — web app/service framework
  • sherpaHTTP router/generator with support for regex and parameters
  • clutch — no-frills web request router, supporting nested routes, regexp parameters
  • dispatch — Regular expression URL dispatcher for Connect
  • antinode — A simple static web server
  • node-paperboy — A node.js module for delivering static files
  • node-static — A simple, rfc 2616-compliant static file server module with built-in caching
  • oui — Web service server with great static files support
  • static – Static file handler using asynchronous streaming as JSGI middleware
  • (fab) — A modular and concise async web framework for node.js
  • Nerve — Microframework with simple array-based syntax for defining an app on top of node. (node.JS 0.1.30)
  • rowan — A hierarchical microframework of reusable controllers and modular app logic.
  • scylla — Create simple one object applications by doubling up method names as URL-matching patterns (node.JS 0.1.102)
  • vroom — A simple resource oriented web framework built on top of Node.js (November 2009, node.JS 0.1.16)
  • Picard
  • simplex (October 2009, node.JS 0.1.14)
  • Pipe-Layer — Asynchronous HTTP router.
  • Meryl — Minimalistic web framework!
  • broke — A porting of the most famous Django Web Framework
  • chain — An evented convention for building Node Applications (Stopped Development, for ejsgi)
  • coltrane — A try at a higher level library/framework for node.js web development (July 2009, node.JS 0.1.1)
  • djangode — A framework that borrows some useful concepts from Django. (March 2010, node.JS 0.1.30)
  • Express — A robust feature rich web development framework inspired by Sinatra
  • Grasshopper — A simple MVC framework for REST-ful applications, with integrated dependency injection.
  • Geddy — A hackable Web-app development framework similar to Merb/Rails/Pylons/Django
  • jimi — A framework for writing modular web applications in node.js (tutorial)
  • js.io — Javascript Networking Library for building real-time web applications. Also see JS.io
  • josi — An MVC web framework that’s easy to pick up but doesn’t get in the way. Also see here.
  • nodemachine — A port of WebMachine to Node.js
  • pinturaREST-based web framework/middleware stack built for Ajax-style JSON-driven applications.
  • cascade — Sequentially attempts multiple middleware apps (JSGI).
  • compress – Gzip compresses (using node-compress) the response when appropriate based on request headers. (JSGI)
  • media – Performs content type negotiation (per RFC2616) delegating to appropriate media handler. (JSGI)
  • csrf – Checks HTTP request for possible cross-site request forgery, flags dangerous requests. (JSGI)
  • xsite – Handles JSONP, window.name, and cross-origin XHR (CORS). (JSGI)
  • rewriter – Rewrites defined paths to other paths. (JSGI)
  • static – Static file handler using asynchronous streaming. (JSGI)
  • error – Catches uncaught errors and converts to appropriate HTTP error responses. (JSGI)
  • conditional – Handles conditional HTTP requests (If-Modified-Since, etc.) (JSGI)
  • http-params – Converts HTTP parameters http- to headers. (JSGI)
  • auth – Handles Authentication (HTTP and cookie based). (JSGI)
  • commonlogger – A logger of HTTP requests. (JSGI)
  • contentlength – Sets Content-Length header. (JSGI)
  • head – Handles HEAD requests (stripping body). (JSGI)
  • redirect – Redirects to other URLs (JSGI)
  • urlmap – Maps to different apps by path/URL (JSGI)
  • extension – Transforms .extension to a RESTful Accept header (JSGI)
  • transporter – Share modules with browser, works RequireJS and Yabble (JSGI)
  • routes – Simple RegExp based router (JSGI)
  • connect-rpx – Use RPX with Node.js and Connect (Connect)
  • connect-assetmanager – Asset manager for Connect for handling CSS/JS files (Connect)
  • session – Session manager with pluggable storage handling (JSGI)
  • dispatch — Regular expression URL dispatcher (Connect)
  • quip — Chainable HTTP response API (Connect)
  • cookie-sessions — Secure cookie-based session store (Connect)
  • awesome — a Redis clone in node.js
  • cradle — a high-level, caching, CouchDB client
  • JSLINQ — Clean and simple port of Microsoft’s LINQ to node.js (and the browser)
  • keys — Unified interface for key/value store clients
  • node-couch — a CouchDB connector
  • node-couchdb — A full API implementation
  • node-couchdb-min — Light-weight client with low level of abstraction and connection pooling.
  • node-dirty — A key value store for node.js that is simple, fast & dirty.
  • node-fleet — a FleetDB Client
  • node-memcache — a memcache client base on libmemcached
  • node-mongodb — Basic MongoDB client implementation in JS/C++
  • node-mongodb-native — A pure javascript driver for MongoDB
  • mongoose — Mongoose is a javascript library that makes working with MongoDB a breeze.
  • node-poormansmysql — Asynchronous MySQL driver for node.js using the mysql command-line tool
  • node-mysql — Pure Javascript MySQL async driver
  • node-mysql-native — Yet another pure JS async driver. Pipelining, prepared statements.
  • node-mysql-libmysqlclient — MySQL synchronous bindings based on libmysqlclient
  • node-sqlite — Bindings for SQLite3. Interface conforms to the HTML5 Web SQL API.
  • NoSQLite – A zero-config SQLite wrapper written in CoffeeScript
  • node-sqlite — Fast asynchronous driver: New evented Node.js look, same great SQLite3 taste
  • node-tyrant — An implementation of the Tokyo Tyrant network protocol for the Node.js
  • node.dbslayer.js – Interface to DBSlayer (MySQL)
  • node_postgres — Beginning of bindings to libpg
  • noodb — A simple and small file backed javascript key-value store
  • persistence — Multi-backend database/nosql system. Backends: Sqlite3, Postgres and Memory.
  • persistence.js — An object-relational mapper (ORM) for node. Backends: MySQL.
  • perstore — JavaScript persistence/object store with pluggable storage based on the W3C DB API
  • postgres-js — Postgres protocol implemented in pure JS
  • redis-node-client — Redis Client by Fictorial
  • redis2json — Easily loads data from Redis into structured JS object
  • sequelize — An easy-to-use MySQL object-relationship-mapper for node.js
  • nohm — Redis object relational mapper (ORM)
  • riak-js — Riak Javascript client (works on node v0.1.30+)
  • node-tokyocabinet — Tokyo Cabinet binding
  • node-migrate — Migrate – A database agnostic migration system for Node.js
  • nodejs-meta-templates — like php mixed with html, processed twice, 1st static data, 2nd dynamic data.
  • asyncEJS — Asynchronous implementation of embedded JavaScript
  • ejs — Light-weight ejs implementation compliant with the Express view system
  • haml.js — Faster / more compliant implementation of Haml
  • haml-js — Server side html generation using javascript. Parses haml templates and renders html.
  • Jade — Haml-like template engine, fantastic error reporting, easier to read, higher performance
  • jazz — A readable template language for node.
  • JSON Template — Minimal but powerful template language with multiple implementations. This is the CommonJS version, tested on Node
  • xmlbuilder.js — An xml builder in Javascript inspired by Ruby’s Builder, Markaby, and Erector.
  • jm — Another Builder/Markaby/Erectory clone in javascript.
  • less.js — official port of Less to javascript/node.
  • Mu — A Mustache engine that compiles templates into very fast rendering functions. Also streams the rendering process.
  • node-template — Fast and light cached templates.
  • sass.js — Parses Sass templates and renders css.
  • template.node.js — A light, fast, cached template module for node.
  • tmpl-node — a feature-rich template module for node.js
  • jsdom — pure js implementation of the dom level 1 with some browser augmentation. Level 2 and 3 are being considered.
  • bind-js — a simple templating engine for node.js that smiles back.
  • normal-template — Normal templates are simple, yet powerful. They are safe, usable in non XML/HTML contexts and portable to any programming language.
  • nun — Totally asynchronous non-blocking template engine for node.js
  • node.magic_dom — A DSL for building HTML in node.js, similar to Python’s Stan
  • stencil — Renders asynchronous templates shared by server and browser
  • strobe-templates — An asynchronous templating engine with syntax like Django’s
  • nodejs-autorestart — It is a way to watch all .js files if they have been changed and to restart nodejs. It allows easy development and stable production.
  • node-jake — JavaScript build tool similar to Make or Rake.
  • kiwi — Feature rich, fast, node.js package management system — server sponsored by Slicehost (no longer in active development)
  • npm — A node package manager that uses CommonJS-compatible package.json files, written in asynchronous javascript.
  • mode — Distributed Node module repository. Uses a github repository to contain info about installable modules.
  • seed — Universal package manager for CommonJS. Includes command line tools and async server
  • nodules — Async module loader with dep resolution/downloading and module reloading w/o server restart
  • node-DJs – Restart a server after each change in main script and dependencies
  • bertrpc
  • jsonrpc
  • xmlrpc-c — Simple XMLRPC Client
  • dnode — asynchronous remote method invocation among node.js processes and the browser
  • node-jsonrpc — Another JSON-RPC server
  • IPCNode — Asynchronous RPC library based on node.js Stream object, with support for circular objects, and explicit reference counting to ensure proper garbage collection.
  • Comet LongPollingBuffer — A Library to simplify the server side of Comet AJAX long polling
  • Faye — Bayeux protocol Comet client and server for Node.js and Rack
  • Socket.io — WebSocket-compatible server and client with fallback for legacy browsers
  • node-XMLHttpRequest
  • node.websocket.js — WebSocket-compatible server.
  • node.ws.js — A basic Web Socket server with interface similar to tcp.createServer(…)
  • nodejs-http-websocket — A websocket server on top of the http server.
  • node-websocket-server — Another websocket server on top of the http server.
  • Restler — Simplified REST client for Node.js
  • node-websocket-client — An HTML5 Web Socket client.
  • tunguska — A comet publish/subscribe distributed hub (runs across multiple node instances).
  • grappler — A minimalistic server for handling “comet” connections that supports a variety of connection methods.
  • sinon — JavaScript test spies, stubs and mocks for Node.js and the browser
  • espionage — A mock/stub framework using the test spy pattern.
  • expressoTDD framework by the author of JSpec
  • exemplor.js — A port of exemplor with Node goodness.
  • jasmine-node — integration with Pivotal’s Jasmine Spec framework
  • jspec — Feature Rich BDD Testing Framework
  • minitest.js — Light-weight & simple testing framework designed specially for testing asynchronous code.
  • mjsunit.runner — Command line mjsunit runner which provides an easy way to hook into mjsunit and start running tests immediately.
  • node-assert-extras — Additional high level asserts
  • node-async-testing — Simple testing (hopefully)
  • node-stories — Given/When/Then integration awesomeness for Node.
  • nodeunit — Quick and easy unit testing, based on a simplified version of the QUnit API
  • ntest — another unit testing framework
  • spectacular — for testing
  • Speks — A specification framework for your node-code
  • Vows — asynchronous behaviour-driven development for node.js
  • Willful — a simple spec’ing library for Node.
  • Gently — A node.js module that helps with mocking and behavior verification.
  • patr — Promise-based asynchronous test runner: lightweight & simple.
  • paynode — wrappers for various payment gateway APIs.
  • bdog-node — haXe wrappers for node.
  • bdog-redis — haXe wrappers for Fictorial’s redis client
  • bdog-gtk — haXe wrappers for node and Gtk-Server
  • bdog-pstore — haXe object server using bdog-node and bdog-redis
  • bdog-mongo — haXe wrappers for native-mongo driver
  • SQLiteHaxeWrapper — haXe wrappers for Orlandov’s SQLite high level driver
  • libxmljs — Bindings to libxml2
  • node-xml — An xml parser for node.js
  • node-xml2object — Converts XML to a JS object, using the node-xml module
  • sax-jsSAX-like parser in pure JS
  • node-expat — Fast SAX parser binding to expat
  • node-xml2js — Simple XML to JavaScript object converter.
  • canopyPEG parser compiler for JavaScript
  • jison — A parser generator written in JavaScript; similar to Bison for C
  • PEG.js — Parser Generator for JavaScript
  • inimino’s PEG — A PEG Packrat Parser Generator for JavaScript
  • jparse — A parser combinator for javascript based on Packrat parsers and Parsing expression grammars
  • OMeta Javascript compiler
  • node-discount — C markdown parser “discount” bindings
  • node-csv — Efficient Evented CSV Parsing.
  • ya-csv — Evented CSV parser and writer with configurable separator, escape and quote characters
  • querystring.node.js — Robust query string parsing for node.
  • yajl-jsSAX-like evented JSON parsing using yajl
  • node-htmlparser — Forgiving HTML Parser in JS for both Node and Browsers
  • node-useragent — User agent string parser with accurate browser versioning and grouping
  • node-jspack — JavaScript library to pack ints, floats, etc. to octet arrays representing C data structures
  • node-msgpack — Bindings for MessagePack, space-efficient object serialization library
  • node-rfb — Parse the RFB protocol used by VNC
  • node-bufferlist — Create linked lists of buffers and asynchronously parse binary data from these lists
  • node-netstring — Read and write netstrings
  • apricot — Hpricot inspired clone, JSDom with Sizzle Selector engine and XUI for HTML augmentation
  • node-gd — GD graphic library bindings
  • magickal-node — GraphicsMagick wrapper for node.js
  • node-imagemagick — ImageMagick module
  • node-png — Convert an RGB or RGBA buffer to PNG fast
  • node-gif — Convert an RGB or RGBA buffer to GIF fast
  • node-jpeg — Convert an RGBA or RGB buffer to JPEG fast
  • node-ogl — OpenGL bindings
  • node-webgl — WebGL emulation
  • gm — GraphicsMagick for node
  • node-video — Create Theora/OGG videos from RGB buffers (and stream them via <video> tag)
  • node-image — Unifies node-png, node-gif, node-jpeg
  • behaviors — A simple way to check a module’s exports, useful for 3rd party plugins and extensions
  • box2dnode — Port of the box2d physics simulation library
  • class.js — High performance and lightweight class implementation (10-ish SLOC)
  • cookie-node — signed cookie functionality for node.js
  • node-cookiejar — repetitive use cookie jar construction / cookie functionality
  • daemon.node — Unix/Linux Daemons with node.js
  • dust — OO way to fill your database with not totally random content
  • dox — Documentation generator using JSdoc and markdown comments
  • evented-twitter — asynchronous twitter client, supports streaming api
  • express-chat — A chat application demo for testing node.js + MongoDB scalability
  • ext — High quality / performance JavaScript extensions specifically for node.js
  • flickrnode — A library to enable use of the flickr api (not as complete as node-flickr, but supports auth)
  • Faker.js — generate massive amounts of fake data in Node.js and the browser
  • flow-js — Continuation-esque contruct for expressing multi-step asynchronous logic
  • hub.js — in-memory and in progress PubSubHubBub server
  • IRC-js — An IRC library for node.js
  • Jefe — Jefe is a safe sandbox for running user scripts in Node.js
  • Jerk — A fun little IRC bot library for node.js.
  • koala — Code syntax highlighting library
  • lepoteXMPP bot
  • limestone — Sphinx search server connector
  • nDistro — Node distribution toolkit. Create and install distributions in seconds without GIT or npm
  • node-discount — C markdown parser “discount” bindings
  • node-amfAMF library and web service gateway for Flash remoting
  • node-amqpAMQP client
  • node-amqp — Basic AMQP client
  • node-asterisk — Listen to events in realtime and issue commands on Asterisk servers
  • node-bittorrent — A library for handling the bittorrent protocol
  • node-chat — A simple web-based chat server
  • node-continuables — A library making dealing with asynchronous code easier
  • node-control — System admin and code deployment via ssh (similar to Capistrano/Vlad)
  • node-cron — Schedule callbacks with cron syntax
  • node-email — A simple wrapper around sendmail
  • node-Daemon — Restart node script after each change in main script or its dependencies
  • node-iconv — iconv bindings, character encoding conversion made easy.
  • node_mailer — send emails from node.js to an smtp server, simple as cake
  • node-flickr — A simple library to enable easy use of the flickr api
  • node-geoip — geoip city lookup module (uses libgeoip)
  • node-github — A wrapper for the GitHub API
  • node-growl — unobtrusive notification system (growlnotify “bindings”)
  • node-logger — Simple logging like Ruby’s logger.rb and console.log
  • node-hammer — Simple load testing tool similar to AB but with less features.
  • node-maxmind — maxmind/geoip module (using libgeoip)
  • node-parallel — Create tasks in node.js that run in parallel, or sequences that run tasks one after another.
  • node_pcap — Network packet capture and analysis using libpcap
  • node-promise — Robust promises for node.js, includes promise utilities and promise-based I/O library
  • node-prowl — A module that allows you to send push notifications to your iPhone through the Prowl API
  • node-resque — Resque redis-backed job queue workers in node.js
  • node-sandbox — A rudimentary javascript sandbox for use with node.js
  • node-s3 — App for basic Amazon Web Services S3 administration (upload files, bucket admin, etc.)
  • node.Amazon-S3 — S3 implementation with Md5 signing, upload/download progress% events, streaming, large file support.
  • node-solr — Solr module for Node
  • nodestalker — A beanstalkd client for node
  • node-stomp — A basic STOMP client.
  • node-syslog — Allows sending messages to syslog.
  • node-taglib — Beginnings of bindings to taglib
  • node-twiml — Easy TwiML creation in node.js
  • node-ugly — Allows to run PHP code from within node.js
  • node-uneval — Adds uneval() support to node.js
  • node-worker — An implementation of the WebWorker API for node.js
  • node-webworker — An implementation of the HTML5 Web Worker API.
  • node-yui3 — Use the YUI 3 JS library from node.js
  • node-yql — A YQL (Yahoo Query Language) module for Node.js
  • nshtools — a high level shell scripting library for file and operating system chores
  • soda.js — Asynchonous JavaScript module loader for client-side and Node.js
  • Step — Tool for grouping and chaining asynchronous callbacks, based on flow-js
  • async — Comprehensive async map/reduce and flow control (parallel, series, waterfall, auto…) module that works in node and the browser
  • Task.node Simple task manager similar to Rake, Scons and others.
  • tasks.js Tasks for Node (like Rake!) with a very JavaScripty API.
  • temp — Temporary files and directories
  • tweetstream — Stream like API for twitter’s HTTP streaming interface.
  • TwitScript — A port of Twython to Node.js (Twitter API Library)
  • user-agent — user agent string parser
  • uuid — Efficient bulk UUID generation and caching via command-line OSSP uuid.
  • uuid-2 — Fork of above, works on OS X and fixes bug.
  • uuidjs — Simple UUID generation binding to libuuid.
  • vargs — practical variable argument handling.
  • Wheres Waldo — track locations of users in redis
  • Wrench-JS — Useful Node.js operations (recursive directory operations, etc)
  • yaml — CommonJS YAML parser
  • node-ncurses — An ncurses binding for node.js
  • node-terminal — A simple terminal module for ansi control codes.
  • swirl-node — A simple EC2 client
  • node-hoptoad-notifier — Report exceptions to Hoptoad.
  • html filtre – A proxy that filters Html requests and give you an opportunity to add custom content into the response
  • pokenode – A push notification utility to make HTML/CSS development faster.
  • Set implementation – built on the object hash
  • forms — An easy way to create, parse and validate forms
  • promised-io — Cross-platform promise-based I/O provides composibility on evented I/O.
  • node-inotify — Bindings to GNU/Linux Inotify API
  • sneaker — Helps you observing objects if any attribute changes
  • node-proxy — Object Overloading and catch-all property interceptors using Harmony Proxies
  • node-stringprep — Binding to ICU StringPrep profiles
  • commonjs-utilsJSON Schema, AOP, XML-RPC, lazy arrays, and other utilities
  • datatypes-js — Byte encoding/decoding for typical datatypes in JS.
  • Dojo Toolkit — The Dojo library for Node
  • email.js — Email generation and parsing in Javascript.
  • match-js — Simple pattern matching (functional style) in JS.
  • qxoo — port of the qooxdoo OO system to commonJS
  • underscore — Unobtrusive functional programming utility library.
  • abbrev-js — Like Ruby’s Abbrev module.
  • wu.js — A lazy, functional Javascript library that ain’t nuthin’ ta f*ck wit.
  • inflection — A port of the Rails/ActiveSupport inflector to JavaScript
  • schema.js — Modular data schema validation and adaptation according to JSON Schema for JavaScript (CommonJS)