A curated list of astonishing Node.js frameworks, libraries and resources. Inspired by awesome-php and awesome-python.
Your pull requests are very welcome! Let's make this the awesomest resource for Node!
- Awesome Node.js
- Application Servers
- Async Control Flow
- Authentication and OAuth
- Build Tools
- Communication
- Content Management System
- Database Drivers
- Debugging Tools
- Documentation
- Environment Management
- Files and MIME Type Manipulation
- Forms
- Integrated Development Environments
- Logging
- ORM
- Package Management
- Rate Limiting
- RESTful API
- Science
- Templating
- Testing
- Tools for building CLIs
- Web Frameworks
- Miscellaneous
- Tutorials
- Books
- Blogs
- Other Awesome Lists
Application Server is an environment to run and manage multiple applications.
- Impress - Impressive multipurpose scalable Application Server optimized for high load API and web applications.
Libraries that help you manage asyncronous control flow and avoid callback hell.
- Callback-based:
- Async - Utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
- each-async - Async concurrent iterator like forEach.
- node-seq - Chainable asynchronous flow control for node.js with sequential and parallel primitives and pipeline-style error handling.
- Promise-based (Promises/A+):
- Bluebird - Bluebird is a fully featured promise library with focus on innovative features and performance.
- Q - Full-featured promise library with large API covering any situation you may encounter.
- RSVP.js - Lightweight, but still compliant, promise library.
- when.js - Rock solid, battle tested promise library.
- Fibers-base (node-fibers):
- asyncawait - Inspired by C# async/await feature, implementation of the same pattern using fibers.
- Generator-based:
Libraries for implementing authentications schemes.
- everyauth - Authentication and authorization (password, facebook, & more) for your Connect and Express apps.
- ldapjs - Pure JavaScript, from-scratch framework for implementing LDAP clients and servers.
- Lockit - Full featured authentication solution for Express.
- oauth-signature-js - OAuth 1.0a signature generator
- PassportJS - Simple authentication middleware framework.
- passwordless - Token-based authentication middleware for Express allowing authentication without passwords.
Libraries for building and task running
- Browserify - Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
- Grunt.js - A task runner to ease epetitive tasks like unit testing, compilation and so on.
- Gulp.js - A streaming build system which use of streams and code-over-configuration.
- Nodemon - A dev utility that monitor any changes in source and automatically restart server.
- BinaryJS - BinaryJS is bidrectional realtime binary data with binary websockets
- Primus - An abstraction layer for real-time frameworks to prevent module lock-in.
- Socket.IO - Websocket framework for Node and Javascript.
- SocketCluster - Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
- SockJS - Websocket emulation.
- Straw - Real-time dataflow framework.
- Calipso - Calipso is a simple CMS, built along similar themes to Drupal and Wordpress.
- KeystoneJS - Node.js CMS and web application platform built on Express and MongoDB.
Libraries for connecting and operating databases
- Node-mongodb-native - Mongo DB Native NodeJS Driver.
- Node-mysql - A pure node.js JavaScript Client implementing the MySql protocol.
- Node-redis - Redis Driver, use hideredis for native parser, and checkout then-redis for a Promise-based API.
Tools for debugging Node applications
- cf-node-debug - Proxy to aid in debugging node running on a PaaS.
- debug - Tiny debugging utility.
- jstrace - Dynamic tracing for JavaScript, similar to dtrace, ktap etc.
- longjohn - Longer stack traces for Node.
- node-inspector - Node.js debugger based on Blink Developer Tools.
- Nodev - Tool for easier debugging based on nodemon and node-inspector.
- stackman - Enhance an error stacktrace with code excerpts and other goodies.
- Theseus - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree.
- TraceGL - Transforms your JavaScript, injecting monitoring code that produces a log of everything that happens.
- TypesJs - Easy type checking, for Node & browsers.
- vstream - Instrumentable streams mix-ins to inspect a pipeline of streams.
Libraries for generating project documentation.
- Docco - Docco is a quick-and-dirty documentation generator, written in Literate CoffeeScript.
- dox - JavaScript documentation generator for node using markdown and jsdoc.
- Groc - Documentation generation, in the spirit of literate programming.
Libraries for Node version and environment management.
- n - Node version management.
- nave - Virtual Environments for Node.
- nodeenv - Virtual environment for Node.js & integrator with virtualenv.
- nvm - Node Version Manager (does not require prior installation of node).
- PDFKit - A JavaScript PDF generation library for Node and browser.
Libraries for deal with forms and form data
- express-validator - An express.js middleware for node-validator.
- node-validator - A simple string validation and sanitization.
IDEs and Editors for development
- Atom - The hackable editor by GitHub
- Brackets - An open source code editor for the web, written in JavaScript, HTML and CSS.
- Cloud Commander - Web file manager. Has editor and console. Allows you to develop web applications, sites etc.
- Cloud9 - Web editor with collaboration tools.
- CmdEr - Not really and IDE, but a great "lovely console emulator package for Windows"
- Enide - Node Eclipse IDE with Nodeclipse plugin.
- InteliJIDEA - Fast Node plugin for InteliJ.
- Notepad++ - Notepad++ is a free source code editor and Notepad replacement that supports several languages.
- Visual Studio - With Node.js Tools for Visual Studio (Supports editing, IntelliSense, profiling, npm, TypeScript, debugging locally and remotely on Windows/MacOS/Linux)
- Webstorm - "Create great websites and applications in a great IDE. The best JavaScript IDE and HTML editor is at your service."
Tools for generating and working with log files.
- Bunyan - A simple and fast JSON logging module for node.js services.
- caterpillar - A logging system that can log and pipe the output off to different locations.
- intel - A comprehensive logging library (handlers, filters, formatters, console injection).
- Log.io - Real time logging facility on the browser.
- tracer - A powerful and customizable logging library for node.js.
- winston - A multi-transport async logging library.
Libraries that implement Object-Relational Mapping or datamapping techniques.
- Mongoose - Almost an ORM for mongodb.
- Node-orm2 - Another Relational Object Mapper.
- Sequelize - Sequelize library provides easy access to MySQL, MariaDB, SQLite or PostgreSQL databases.
- Waterline - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
Libraries for package and dependency management.
- Duo - A next-generation package manager for the front-end.
- npm - Default package manager. Installs, publishes and manages node programs.
Libraries that help restrict the frequency of certain actions.
- Bottleneck - A powerful rate limiter that makes throttling easy.
Libraries for developing RESTful APIs.
- Heimdall - REST API Guardian for Express.
- Node-restify - A node.js module built specifically to build correct REST web services.
- Sails - MVC framework which generates a RESTful JSON API.
Things some awesome crazy people are doing!
- BitcoinJS - Clean, readable, proven Bitcoin library.
- Breach - Modular and hackable browser written in JavaScript.
- dat - Real-time replication and versioning for data sets.
- ipfs - Distributed file system that seeks to connect all computing devices with the same system of files.
- js-git - JavaScript implementation of Git.
- NodeOS - The first operating system powered by npm.
- PDFKit - PDF generation library.
- peercast - Stream a torrent video to Chromecast.
- peerflix - Streaming torrent client.
- peerwiki - All of Wikipedia on BitTorrent.
- turf - Modular geospatial processing and analysis engine.
- webtorrent - Streaming torrent client for Node.js and the browser.
Libraries and tools for templating and lexing.
- ECT - "Fastest JavaScript template engine with embedded CoffeeScript syntax" as they say (benchmark proof).
- handlebars.js - A superset of Mustache templates which adds powerful features like helpers and more advanced blocks.
- hogan.js - Twitter's small, fast, phase-separated compiler for Mustache templates.
- Jade - Handful node template engine.
- nunjucks - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
- Swig - A simple, powerful, and extendable JavaScript Template Engine.
Testing frameworks.
- chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
- Concrete - Continuous integration server.
- Expresso - TDD framework for Node.
- Jasmine - Simple Behavioral tests for Node and Javascript.
- Jezebel - A REPL and continuous test runner for Node.js Jasmine tests.
- mocha - Mocha is a feature-rich JavaScript test framework running on node.js and the browser, making asynchronous testing simple and fun.
- Mochify - TDD with Browserify, Mocha, PhantomJS and WebDriver.
- NodeUnit - Simple syntax unit test tool.
- ready.js - Continuous javascript integration tool.
- should.js - BDD style assertions for node.js -- test framework agnostic.
- sinon - Standalone test spies, stubs and mocks for JavaScript.
- tape - tap-producing test harness for node and browsers.
Libraries and tools which support you by building Command-Line Interfaces.
- blessed - A curses-like library for node.js.
- chalk - Terminal string styling done right
- cli-spinner - A simple spinner for node cli.
- cli-table - Pretty unicode tables for the CLI with Node.JS
- cli - Rapidly build command line apps with node.
- colors.js - get colors in your node.js console like what.
- commander.js - The complete solution for node.js command-line interfaces, inspired by Ruby's commander.
- configstore - Easily load and persist config without having to think about where and how.
- Inquirer - A collection of common interactive command line user interfaces. Ask questions, parsing, validating answers, managing hierarchical prompts and providing error feedback.
- log-symbols - Colored symbols for various log levels.https://github.com/sindresorhus/log-symbols
- minimist - Simple module for command line arguments parsing.
- nomnom - Option parser for node with generated usage and commands.
- read - For reading user input from stdin.
- terminal-menu - retro ansi terminal menus for serious 80s technicolor business.
- text-table - generate borderless text table strings suitable for printing to stdout.
Web development frameworks.
- Derby - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
- Derby-awesome - A collection of awesome derby components
- Express - A minimal and flexible node.js web application framework.
- Flatiron - An adaptable framework for building modern web applications.
- Hapi - A rich framework for building applications and services.
- HuntJS - event driven framework for building clustered webservers, telnet and background applications with mongoose or sequilize as data storage.
- Interfake - Rapid prototyping framework for making mock HTTP APIs, with a Node, command-line and HTTP interface.
- Koa - A framework which aims to be a smaller, more expressive, and more robust foundation for web applications.
- LoopBack - Powerful Node.js framework for creating APIs and easily connecting to backend data sources.
- Meteor - A platform that has strong features such as live page update, sync and hopt code pushes.
- Restify - A node framework built specifically to enable you to build correct REST web services.
- SailsJS - An MVC web framework with a modern twist, supporting WebSockets, streams, and a data-driven API.
- Totaljs - Friendly responsive design web application framework for node.
- Catberry - Framework with Flux architecture, isomorphic web-components and progressive rendering.
- Calipso - Calipso is a simple CMS, built along similar themes to Drupal and Wordpress.
- KeystoneJS - Node.js CMS and web application platform built on Express and MongoDB.
Miscellaneous Tools which doesn't fit to the other categories.
- agenda - Lightweight job scheduling on MongoDB.
- atom-shell - Cross-platform desktop application shell.
- cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
- common-errors - Common error classes and utility functions.
- Faker.js - Generate massive amounts of fake data.
- Github Linker - Chrome extension that linkifies dependencies in package.json on GitHub.
- lazy-req - Require modules lazily.
- multiline - Multiline strings in JavaScript.
- nan - A header file filled with macro and utility goodness for making add-on development for across Node.js versions easier.
- Node-Bell - Real-time anomalies detection for periodic time series.
- node-pre-gyp - Makes it easy to publish and install Node.js C++ addons from binaries.
- opencv - Bindings for OpenCV. The defacto computer vision library.
- opn - Opens stuff like websites, files, executables.
- require-uncached - Require a module bypassing the cache.
- semver - semver parser.
- shelljs - Portable Unix shell commands.
- ssh2 - An SSH2 client module.
- stringify-object - Stringify an object/array like JSON.stringify just without all the double-quotes.
- strip-bom - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
- webworker-threads - Lightweight Web Worker API implementation with native threads.
- browserify-handbook - The definitive guide for browserify.
- module-best-practices - Some good practices when writing new npm modules.
- Nodeschool - Learn Node.js with interactive lessons.
- stream-handbook - How to write Node.js programs with streams.
- The Art of Node - An introduction to Node.js.
- Mastering Node
- Mixu's Node book
- Node.js in Action
- Practical Node.js: Building Real-World Scalable Web Apps
- Professional Node.js: Building Javascript Based Scalable Software
- Web Development with Node and Express
- HowToNode - Teaching how to do various tasks in Node.js as well as teach fundamental concepts that are needed to write effective code.
- Node.js blog
Other amazingly awesome lists can be found in the awesome-awesome and awesome-awesomeness projects.
Chinese awesome-nodejs version by @ueqt.
Your contributions are always welcome!