2014-07-11 09:34:45 -04:00
# Awesome Node.js
> A curated list of delightful Node.js [packages](#packages) and [resources](#resources).
Inspired by the [awesome ](https://github.com/sindresorhus/awesome ) list thing.
## Packages
2014-09-11 17:03:59 -04:00
- [Mad science ](#mad-science )
2014-07-11 09:34:45 -04:00
- [Command-line apps ](#command-line-apps )
2014-09-11 17:03:59 -04:00
- [Functional programming ](#functional-programming )
2014-07-11 09:34:45 -04:00
- [HTTP ](#http )
2014-07-25 18:29:52 -04:00
- [Debugging / Profiling ](#debugging--profiling )
2014-07-11 09:34:45 -04:00
- [Logging ](#logging )
- [Web frameworks ](#web-frameworks )
- [Command-line utilities ](#command-line-utilities )
2014-08-09 08:46:59 -04:00
- [Package managers ](#package-managers )
2014-07-11 09:34:45 -04:00
- [Build tools ](#build-tools )
- [Templating ](#templating )
- [Documentation ](#documentation )
- [Filesystem ](#filesystem )
- [Control flow ](#control-flow )
- [Streams ](#streams )
- [Real-time ](#real-time )
- [Date ](#date )
- [Image ](#image )
2014-07-18 20:15:12 -04:00
- [Text ](#text )
2014-07-25 17:49:51 -04:00
- [Math ](#math )
- [Data validation ](#data-validation )
2014-07-12 13:03:00 -04:00
- [Parsing ](#parsing )
2014-07-11 09:34:45 -04:00
- [Humanize ](#humanize )
2014-07-12 13:03:00 -04:00
- [Compression ](#compression )
- [Network ](#network )
2014-07-11 09:34:45 -04:00
- [Static site generators ](#static-site-generators )
- [Content management systems ](#content-management-systems )
2014-07-12 13:14:59 -04:00
- [Forum ](#forum )
- [Blogging ](#blogging )
2014-07-11 09:34:45 -04:00
- [Database ](#database )
- [Testing ](#testing )
2014-08-12 10:13:13 -04:00
- [Benchmarking ](#benchmarking )
2014-07-11 09:34:45 -04:00
- [Minifiers ](#minifiers )
- [Authentication ](#authentication )
- [Node.js management ](#nodejs-management )
2014-07-29 20:19:23 -04:00
- [Email ](#email )
2014-07-11 09:34:45 -04:00
- [Polyfills ](#polyfills )
2014-08-10 05:38:55 -04:00
- [Natural language processing ](#natural-language-processing )
2014-08-21 06:17:46 -04:00
- [Process management ](#process-management )
2014-07-12 13:03:00 -04:00
- [AST ](#ast )
- [Weird ](#weird )
2014-07-11 09:34:45 -04:00
- [Miscellaneous ](#miscellaneous )
2014-07-29 20:26:55 -04:00
2014-09-11 17:03:59 -04:00
### Mad science
2014-07-11 09:34:45 -04:00
2014-09-11 17:03:59 -04:00
- [webtorrent ](https://github.com/feross/webtorrent ) - Streaming torrent client for Node.js and the browser.
- [peerflix ](https://github.com/mafintosh/peerflix ) - Streaming torrent client.
2014-09-11 17:59:39 -04:00
- [dat ](http://dat-data.com ) - Real-time replication and versioning for data sets.
2014-09-11 17:03:59 -04:00
- [ipfs ](https://github.com/jbenet/node-ipfs ) - Distributed file system that seeks to connect all computing devices with the same system of files.
2014-09-11 18:47:32 -04:00
- [Breach ](http://breach.cc ) - Modular and hackable browser written in JavaScript.
2014-09-11 17:59:39 -04:00
- [BitcoinJS ](http://bitcoinjs.org ) - Clean, readable, proven Bitcoin library.
2014-09-11 17:03:59 -04:00
- [js-git ](https://github.com/creationix/js-git ) - JavaScript implementation of Git.
2014-09-11 20:39:55 -04:00
- [NodeOS ](http://node-os.com ) - The first operating system powered by npm.
2014-09-11 17:03:59 -04:00
- [PDFKit ](http://pdfkit.org ) - PDF generation library.
2014-09-11 23:35:10 -04:00
- [turf ](https://github.com/Turfjs/turf/ ) - Modular geospatial processing and analysis engine.
2014-07-11 09:34:45 -04:00
### Command-line apps
2014-09-11 17:03:59 -04:00
- [pageres ](https://github.com/sindresorhus/pageres ) - Responsive website screenshots.
2014-07-11 09:34:45 -04:00
- [trash ](https://github.com/sindresorhus/trash ) - A safer alternative to `rm` .
2014-09-11 17:03:59 -04:00
- [Yo ](https://github.com/yeoman/yo ) - Run Yeoman generators.
2014-07-11 09:34:45 -04:00
- [ESLint ](http://eslint.org ) - The pluggable linting utility for JavaScript.
- [JSHint ](http://jshint.com ) - A community-driven tool to detect errors and potential problems in JavaScript code.
2014-09-11 17:03:59 -04:00
- [JSCS ](https://github.com/jscs-dev/node-jscs ) - JavaScript Code Style checker.
2014-07-11 09:34:45 -04:00
- [cpy ](https://github.com/sindresorhus/cpy ) - Copy files.
2014-07-12 13:03:00 -04:00
- [torrent ](https://github.com/maxogden/torrent ) - Download torrents.
- [David ](https://github.com/alanshaw/david ) - Tells you when your package npm dependencies are out of date.
2014-07-15 05:00:37 -04:00
- [vtop ](https://github.com/MrRio/vtop ) - More better top, with nice charts.
2014-07-25 18:29:52 -04:00
- [tmpin ](https://github.com/sindresorhus/tmpin ) - Adds stdin support to any CLI app that accepts file input.
2014-07-29 20:18:27 -04:00
- [normit ](https://github.com/pawurb/normit ) - Google Translate with speech synthesis in your terminal.
2014-08-04 11:03:20 -04:00
- [esformatter ](https://github.com/millermedeiros/esformatter ) - JavaScript code beautifier/formatter.
2014-09-11 17:03:59 -04:00
- [is-up ](https://github.com/sindresorhus/is-up ) - Check whether a website is up or down.
- [ipify ](https://github.com/sindresorhus/ipify ) - Get your public IP address.
2014-09-12 07:59:42 -04:00
- [http-server ](https://github.com/nodeapps/http-server ) - Simple, zero-config command-line HTTP server.
2014-09-11 17:03:59 -04:00
### Functional programming
- [Lo-Dash ](http://lodash.com ) - A utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.
- [Mout ](http://moutjs.com ) - Utility library with the biggest difference between other existing solutions is that you can choose to load only the modules/functions that you need, no extra overhead.
- [mori ](http://swannodette.github.io/mori/ ) - A library for using ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript.
- [Folktale ](http://folktale.github.io ) - A suite of libraries for generic functional programming in JavaScript that allows you to write elegant modular applications with fewer bugs, and more reuse.
- [immutable ](https://github.com/facebook/immutable-js ) - Immutable data collections.
2014-09-12 08:16:21 -04:00
- [underscore-contrib ](http://documentcloud.github.io/underscore-contrib/ ) - The brass buckles on Underscore's utility belt.
2014-07-11 09:34:45 -04:00
### HTTP
- [request ](https://github.com/mikeal/request ) - Simplified HTTP request client.
2014-08-12 04:33:46 -04:00
- [got ](https://github.com/sindresorhus/got ) / [sent ](https://github.com/floatdrop/sent ) - A nicer interface to the built-in `http` module.
2014-07-11 09:34:45 -04:00
- [superagent ](https://github.com/visionmedia/superagent ) - A small progressive HTTP request library.
- [hyperquest ](https://github.com/substack/hyperquest ) - Streaming HTTP requests.
2014-08-01 15:07:10 -04:00
- [spdy ](https://github.com/indutny/node-spdy ) - Creates SPDY servers with the same API as the built-in `https` module.
2014-08-04 22:16:23 -04:00
- [Nock ](https://github.com/pgte/nock ) - A HTTP mocking and expectations library.
2014-08-10 10:57:24 -04:00
- [download ](https://github.com/kevva/download ) - Download and extract files effortlessly.
2014-09-11 17:03:59 -04:00
- [wreck ](https://github.com/hapijs/wreck ) - HTTP Client Utilities.
2014-08-10 10:57:24 -04:00
2014-07-11 09:34:45 -04:00
2014-07-25 18:29:52 -04:00
### Debugging / Profiling
- [node-inspector ](https://github.com/node-inspector/node-inspector ) - Debugger based on Blink Developer Tools.
- [Theseus ](https://github.com/adobe-research/theseus ) - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree.
- [longjohn ](https://github.com/mattinsler/longjohn ) - Long stack traces with configurable call trace length.
- [debug ](https://github.com/visionmedia/debug ) - Tiny debugging utility.
- [jstrace ](https://github.com/jstrace/jstrace ) - Dynamic tracing for JavaScript, similar to dtrace, ktap etc.
- [TraceGL ](https://github.com/traceglMPL/tracegl ) - Transforms your JavaScript, injecting monitoring code that produces a log of everything that happens.
2014-08-07 11:07:12 -04:00
- [spy-js ](https://github.com/spy-js/spy-js#installation ) - Tracing tool for JavaScript, featuring configurable event capturing, searchable call stack, code coverage, recorded object values inspection, multi process and node cluster tracing support.
2014-08-09 17:42:26 -04:00
- [njsTrace ](https://github.com/valyouw/njstrace ) - Instrument and trace you code, see all function calls, arguments, return values, as well as the time spent in each function.
2014-08-17 08:31:38 -04:00
- [vstream ](https://github.com/joyent/node-vstream ) - Instrumentable streams mix-ins to inspect a pipeline of streams.
2014-07-25 18:29:52 -04:00
2014-07-11 09:34:45 -04:00
### Logging
- [winston ](https://github.com/flatiron/winston ) - A multi-transport async logging library.
- [Bunyan ](https://github.com/trentm/node-bunyan ) - A simple and fast JSON logging library.
### Web frameworks
- [Koa ](http://koajs.com ) - A new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
- [Express ](http://expressjs.com ) - A minimal and flexible web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
2014-07-12 13:03:00 -04:00
- [Hapi ](http://hapijs.com ) - A rich framework for building applications and services.
2014-09-11 16:50:19 -04:00
- [LoopBack ](http://loopback.io ) - Powerful framework for creating REST APIs and easily connecting to backend data sources.
2014-07-12 13:03:00 -04:00
- [Meteor ](https://www.meteor.com ) - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework.
- [SailsJS ](http://sailsjs.org ) - An MVC web framework with a modern twist, supporting WebSockets, streams, and a data-driven API.
2014-07-25 17:44:23 -04:00
- [Restify ](http://mcavage.me/node-restify/ ) - A node framework built specifically to enable you to build correct REST web services.
2014-08-08 17:33:33 -04:00
- [Derby ](https://github.com/derbyjs/derby ) - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
2014-09-12 08:38:45 -04:00
- [Interfake ](https://github.com/basicallydan/interfake ) - Rapid prototyping framework for making mock HTTP APIs, with a Node, command-line and HTTP interface.
2014-08-08 17:33:33 -04:00
2014-07-11 09:34:45 -04:00
### Command-line utilities
- [chalk ](https://github.com/sindresorhus/chalk ) - Terminal string styling done right.
2014-09-11 17:03:59 -04:00
- [minimist ](https://github.com/substack/minimist ) - Parse command-line flags.
- [get-stdin ](https://github.com/sindresorhus/get-stdin ) - Easier stdin.
2014-07-11 09:34:45 -04:00
- [Inquirer.js ](https://github.com/SBoudrias/Inquirer.js ) - Interactive command-line prompt.
- [update-notifier ](https://github.com/yeoman/update-notifier ) - Update notifications for your CLI app.
- [sudo-block ](https://github.com/sindresorhus/sudo-block ) - Block users from running your app with root permissions.
2014-07-12 13:03:00 -04:00
- [configstore ](https://github.com/yeoman/configstore ) - Easily load and persist config without having to think about where and how.
- [insight ](https://github.com/yeoman/insight ) - Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics.
2014-09-11 17:03:59 -04:00
- [sparkly ](https://github.com/sindresorhus/sparkly ) - Generate sparklines ▁▂▃▅▂▇
2014-07-11 09:34:45 -04:00
- [blessed ](https://github.com/chjj/blessed ) - A curses-like library.
- [cli-table ](https://github.com/LearnBoost/cli-table ) - Pretty unicode tables.
2014-07-15 04:57:17 -04:00
- [drawille ](https://github.com/madbence/node-drawille ) - Draw on the terminal with unicode braille characters.
2014-07-22 11:04:21 -04:00
- [progress ](https://github.com/visionmedia/node-progress ) - Flexible ascii progress bar.
2014-07-25 18:29:52 -04:00
- [log-symbols ](https://github.com/sindresorhus/log-symbols ) - Colored symbols for various log levels.
- [columnify ](https://github.com/timoxley/columnify ) - Create text-based columns suitable for console output. Supports cell wrapping.
2014-08-03 19:12:29 -04:00
- [googleauth ](https://github.com/maxogden/googleauth ) - Create and load persistent Google authentication tokens for command-line apps.
2014-08-19 05:23:51 -04:00
- [figures ](https://github.com/sindresorhus/figures ) - Unicode symbols with Windows CMD fallbacks.
2014-09-11 17:03:59 -04:00
- [cli-cursor ](https://github.com/sindresorhus/cli-cursor ) - Toggle the CLI cursor.
2014-07-11 09:34:45 -04:00
2014-08-09 08:46:59 -04:00
### Package managers
- [npm ](https://github.com/npm/npm/ ) - A package manager for Node.js and the web.
- [Bower ](http://bower.io ) - A package manager for the web.
- [Component ](https://github.com/component/component ) - A package manager for building better web apps.
2014-09-11 16:19:13 -04:00
- [Duo ](http://duojs.org ) - A next-generation package manager for the front-end.
2014-09-12 07:54:48 -04:00
- [jspm.io ](http://jspm.io ) - Frictionless browser package management with support for ES6, CommonJS, AMD modules.
2014-08-09 08:46:59 -04:00
2014-07-11 09:34:45 -04:00
### Build tools
- [gulp.js ](http://gulpjs.com ) - Streaming and fast build system that favors code over config.
- [grunt ](http://gruntjs.com ) - Task runner that can perform repetitive tasks like minification, compilation, unit testing, linting, etc.
- [Broccoli ](https://github.com/broccolijs/broccoli ) - A fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions.
2014-07-28 05:59:30 -04:00
- [browserify ](https://github.com/substack/node-browserify ) - Browser-side require() the Node.js way.
2014-09-12 06:58:57 -04:00
- [webpack ](https://github.com/webpack/webpack ) - Packs CommonJS/AMD modules for the browser.
2014-07-11 09:34:45 -04:00
### Templating
2014-07-18 17:00:02 -04:00
- [handlebars.js ](https://github.com/wycats/handlebars.js/ ) - A superset of Mustache templates which adds powerful features like helpers and more advanced blocks.
- [hogan.js ](http://twitter.github.io/hogan.js/ ) - Twitter's small, fast, phase-separated compiler for Mustache templates.
2014-07-11 09:34:45 -04:00
- [Jade ](https://github.com/visionmedia/jade ) - High performance template engine heavily influenced by Haml.
- [nunjucks ](https://github.com/mozilla/nunjucks ) - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
### Documentation
- [Docco ](http://jashkenas.github.io/docco/ ) - A quick-and-dirty documentation generator which produces an HTML document that displays your comments intermingled with your code.
- [JSDoc ](http://usejsdoc.org ) - API documentation generator similar to JavaDoc or PHPDoc.
2014-07-29 20:26:55 -04:00
- [dox ](https://github.com/visionmedia/dox ) - JavaScript documentation generator using Markdown and JSDoc.
2014-07-12 23:43:00 -04:00
- [jsdox ](https://github.com/sutoiku/jsdox ) - JSDoc3 to Markdown documentation generator.
2014-09-12 09:04:39 -04:00
- [apiDoc ](https://github.com/apidoc/apidoc ) - Inline documentation for RESTful web APIs.
2014-07-11 09:34:45 -04:00
### Filesystem
- [del ](https://github.com/sindresorhus/del ) - Delete files/folders using globs.
- [globby ](https://github.com/sindresorhus/globby ) - Glob files with support for multiple patterns.
- [cpy ](https://github.com/sindresorhus/cpy ) - Copy files.
- [rimraf ](https://github.com/isaacs/rimraf ) - Recursively delete files like `rm -rf` .
- [mkdirp ](https://github.com/substack/node-mkdirp ) - Recursively create directories like `mkdir -p` .
- [graceful-fs ](https://github.com/isaacs/node-graceful-fs ) - Drop-in replacement for the `fs` module with various improvements.
2014-07-12 13:03:00 -04:00
- [fs-extra ](https://github.com/jprichardson/node-fs-extra ) - Extra methods for the `fs` module.
2014-07-11 09:34:45 -04:00
### Control flow
2014-07-25 18:29:52 -04:00
- Callbacks
- [each-async ](https://github.com/sindresorhus/each-async ) - Async concurrent iterator like forEach.
- [async ](https://github.com/caolan/async ) - Provides straight-forward, powerful functions for working with asynchronousity.
- Generators
- [co ](https://github.com/visionmedia/co ) - The ultimate generator based flow-control goodness.
- Promises
2014-09-11 16:19:13 -04:00
- [native-promise-only ](https://github.com/getify/native-promise-only ) - A polyfill for native ES6 Promises.
2014-07-25 18:29:52 -04:00
- [Bluebird ](https://github.com/petkaantonov/bluebird ) - A fully featured promise library with focus on innovative features and performance.
- [Q ](https://github.com/kriskowal/q ) - A tool for making and composing asynchronous promises.
- Streams
- [Highland.js ](http://highlandjs.org ) - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
2014-07-11 09:34:45 -04:00
### Streams
2014-07-29 20:26:55 -04:00
- [through2 ](https://github.com/rvagg/through2 ) - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise.
2014-07-11 09:34:45 -04:00
- [concat-stream ](https://github.com/maxogden/concat-stream ) - Concatenates a stream into strings or binary data.
- [simple-bufferstream ](https://github.com/rvagg/node-simple-bufferstream ) - Turn a Buffer into a ReadableStream.
- [co-stream ](https://github.com/juliangruber/co-stream ) - [co ](https://github.com/visionmedia/co ) generator stream.
2014-09-11 16:19:13 -04:00
- [byline ](https://github.com/jahewson/node-byline ) - Super-simple line-by-line Stream reader.
2014-07-25 18:29:52 -04:00
- [first-chunk-stream ](https://github.com/sindresorhus/first-chunk-stream ) - Transform the first chunk in a stream.
2014-08-07 16:12:45 -04:00
- [duplexify ](https://github.com/mafintosh/duplexify ) - Turn a writeable and readable stream into a single streams2 duplex stream.
- [pumpify ](https://github.com/mafintosh/pumpify ) - Combine an array of streams into a single duplex stream.
- [from2 ](https://github.com/hughsk/from2 ) - Convenience wrapper for ReadableStream, inspired by `through2` .
- [from2-array ](https://github.com/binocarlos/from2-array ) - Create a `from2` stream based on an array of source values.
2014-08-09 08:46:59 -04:00
- [peek-stream ](https://github.com/mafintosh/peek-stream ) - Transform stream that lets you peek the first line before deciding how to parse it.
- [binary-split ](https://github.com/maxogden/binary-split ) - A fast newline (or any delimiter) splitter stream.
2014-08-19 05:23:51 -04:00
- [multistream ](https://github.com/feross/multistream ) - Combine multiple streams into a single stream.
2014-08-15 12:15:56 -04:00
- [graphicsmagick-stream ](https://github.com/e-conomic/graphicsmagick-stream/ ) - Fast convertion/scaling of images using a pool of long lived graphicsmagick processes.
2014-09-11 22:34:43 -04:00
- [readable-stream ](https://github.com/isaacs/readable-stream ) - Mirror of Streams2 and Streams3 implementations in core.
2014-07-11 09:34:45 -04:00
### Real-time
- [Socket.io ](http://socket.io ) - Enables real-time bidirectional event-based communication.
2014-07-13 09:23:41 -04:00
- [SocketCluster ](https://github.com/topcloud/socketcluster ) - Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
2014-07-13 03:25:04 -04:00
- [Primus ](https://github.com/primus/primus ) - An abstraction layer for real-time frameworks to prevent module lock-in.
2014-09-12 08:51:04 -04:00
- [Straw ](https://github.com/simonswain/straw ) - Real-time dataflow framework.
2014-07-11 09:34:45 -04:00
### Date
- [Moment.js ](http://momentjs.com ) - Parse, validate, manipulate, and display dates.
- [dateformat ](https://github.com/felixge/node-dateformat ) - Date formatting.
### Image
- [sharp ](https://github.com/lovell/sharp ) - The fastest module for resizing JPEG, PNG, WebP and TIFF images.
2014-07-12 13:03:00 -04:00
- [image-type ](https://github.com/sindresorhus/image-type ) - Detect the image type of a Buffer/Uint8Array.
- [gm ](https://github.com/aheckmann/gm ) - GraphicsMagick and ImageMagick wrapper.
### Text
- [Underscore.string ](https://github.com/epeli/underscore.string ) - Collection of string manipulation utilities.
- [he ](https://github.com/mathiasbynens/he ) - A robust HTML entity encoder/decoder.
- [iconv-lite ](https://github.com/ashtuchkin/iconv-lite ) - Convert character encodings.
- [escape-string-regexp ](https://github.com/sindresorhus/escape-string-regexp ) - Escape RegExp special characters.
- [indent-string ](https://github.com/sindresorhus/indent-string ) - Indent each line in a string.
- [strip-indent ](https://github.com/sindresorhus/strip-indent ) - Strip leading whitespace from every line in a string.
2014-07-25 18:29:52 -04:00
- [detect-indent ](https://github.com/sindresorhus/detect-indent ) - Detect the indentation of code.
2014-07-29 20:26:55 -04:00
- [i18n-node ](https://github.com/mashpie/i18n-node ) - Simple translation module with dynamic JSON storage.
2014-08-09 08:46:59 -04:00
- [string-length ](https://github.com/sindresorhus/string-length ) - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes.
2014-09-12 08:43:02 -04:00
- [speakingurl ](https://github.com/pid/speakingurl ) - Generate a slug from a string with transliteration.
2014-07-12 13:03:00 -04:00
### Math
- [ndarray ](https://github.com/mikolalysenko/ndarray ) - Multidimensional arrays.
2014-07-29 20:26:55 -04:00
- [mathjs ](https://github.com/josdejong/mathjs ) - An extensive math library.
2014-07-12 13:03:00 -04:00
2014-07-25 17:49:51 -04:00
### Data validation
- [joi ](https://github.com/spumko/joi ) - Object schema description language and validator for JavaScript objects.
2014-07-12 13:03:00 -04:00
### Parsing
- [css ](https://github.com/reworkcss/css ) - CSS parser / stringifier.
- [strip-json-comments ](https://github.com/sindresorhus/strip-json-comments ) - Strip comments from JSON.
- [marked ](https://github.com/chjj/marked ) - A markdown parser and compiler built for speed.
- [js-yaml ](https://github.com/nodeca/js-yaml ) - Very fast YAML parser.
- [URI.js ](https://github.com/medialize/URI.js ) - URL mutation.
2014-07-23 09:06:19 -04:00
- [JSONStream ](https://github.com/dominictarr/JSONStream ) - Streaming JSON.parse and stringify.
2014-07-25 18:29:52 -04:00
- [csv-parser ](https://github.com/mafintosh/csv-parser ) - Streaming CSV parser that aims to be faster than everyone else.
2014-07-29 09:39:41 -04:00
- [excel-stream ](https://github.com/dominictarr/excel-stream ) - Streaming Excel spreadsheet to JSON parser.
2014-08-13 06:54:29 -04:00
- [parse5 ](https://github.com/inikulin/parse5 ) - Fast full-featured spec compliant HTML parser.
2014-08-09 08:46:59 -04:00
- [htmlparser2 ](https://github.com/fb55/htmlparser2/ ) - Forgiving HTML/XML parser.
- [PostCSS ](https://github.com/postcss/postcss ) - Framework for CSS postprocessors, to modify CSS.
2014-07-11 09:34:45 -04:00
### Humanize
- [pretty-bytes ](https://github.com/sindresorhus/pretty-bytes ) - Convert bytes to a human readable string: `1337` → `1.34 kB` .
- [pretty-ms ](https://github.com/sindresorhus/pretty-ms ) - Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s` .
2014-07-12 13:03:00 -04:00
- [ms ](https://github.com/guille/ms.js ) - Tiny milisecond conversion utility.
- [pretty-error ](https://github.com/AriaMinaei/pretty-error ) - Errors with less clutter.
- [humanize ](https://github.com/taijinlee/humanize ) - Data formatter for human readability.
2014-07-14 06:49:22 -04:00
- [node-read ](https://github.com/bndr/node-read ) - Extract readable content from any page.
2014-07-12 13:03:00 -04:00
### Compression
2014-07-28 07:33:52 -04:00
- [Archiver ](https://github.com/ctalkington/node-archiver ) - Streaming interface for archive generation, supporting ZIP and TAR.
2014-07-12 13:03:00 -04:00
- [decompress-zip ](https://github.com/bower/decompress-zip ) - Unzip.
2014-07-28 07:33:52 -04:00
- [tar-stream ](https://github.com/mafintosh/tar-stream ) - Streaming tar parser and generator. Also see [tar-fs ](https://github.com/mafintosh/tar-fs ).
2014-08-09 09:07:52 -04:00
- [decompress ](https://github.com/kevva/decompress ) - A pluggable decompression module with support for `tar` , `tar.gz` and `zip` files out of the box.
2014-07-12 13:03:00 -04:00
### Network
- [get-port ](https://github.com/sindresorhus/get-port ) - Get an available port.
2014-08-19 05:23:51 -04:00
- [ipify ](https://github.com/sindresorhus/ipify ) - Get your public IP address.
2014-07-11 09:34:45 -04:00
### Static site generators
- [Metalsmith ](http://www.metalsmith.io ) - An extremely simple, pluggable static site generator.
- [Wintersmith ](http://wintersmith.io ) - Flexible, minimalistic, multi-platform static site generator.
- [Assemble ](http://assemble.io ) - Static site generator for Node.js, Grunt.js, and Yeoman.
### Content management systems
- [KeystoneJS ](http://keystonejs.com ) - CMS and web application platform built on Express and MongoDB.
- [Calipso ](http://calip.so ) - A simple content management system, built along similar themes to Drupal and Wordpress, that is designed to be fast, flexible and simple.
2014-09-11 17:03:59 -04:00
- [Apostrophe2 ](http://apostrophenow.org ) - A content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB.
2014-07-11 09:34:45 -04:00
2014-07-12 13:16:22 -04:00
2014-07-12 13:14:59 -04:00
### Forum
2014-07-12 13:16:22 -04:00
- [nodeBB ](https://nodebb.org ) - A better forum platform for the modern web.
2014-07-12 13:14:59 -04:00
### Blogging
2014-07-12 13:16:22 -04:00
- [ghost ](https://ghost.org ) - Simple, powerful publishing platform that allows you to share your story with the world.
- [Hexo ](http://hexo.io ) - Fast, simple and powerful blogging framework.
2014-07-11 09:34:45 -04:00
### Database
2014-07-14 15:54:17 -04:00
- Drivers
2014-07-29 20:26:55 -04:00
- [LevelUP ](https://github.com/rvagg/node-levelup ) - LevelDB.
- [MongoDB ](https://github.com/mongodb/node-mongodb-native ) - MongoDB driver.
- [PostgreSQL ](https://github.com/brianc/node-postgres ) - PostgreSQL client. Pure JavaScript and native libpq bindings.
- [MySQL ](https://github.com/felixge/node-mysql ) - MySQL client.
- [Redis ](https://github.com/mranney/node_redis ) - Redis client.
2014-07-14 15:54:17 -04:00
- ODM / ORM
2014-09-11 17:03:59 -04:00
- [Bookshelf ](http://bookshelfjs.org ) - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
2014-07-29 20:26:55 -04:00
- [JugglingDB ](https://github.com/1602/jugglingdb ) - Multi-database ORM with a common API. Supports Redis, PostgreSQL, MongoDB, MySQL, SQLite, Neo4j, memory, and more.
2014-09-11 17:03:59 -04:00
- [Mongoose ](http://mongoosejs.com ) - Elegant MongoDB object modeling.
2014-07-29 20:26:55 -04:00
- [Sequelize ](https://github.com/sequelize/sequelize ) - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL.
2014-08-29 10:04:24 -04:00
- [Waterline ](https://github.com/balderdashy/waterline ) - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
2014-07-15 07:00:39 -04:00
- Query builder
2014-09-11 17:03:59 -04:00
- [Knex ](http://knexjs.org ) - A query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.
2014-07-11 09:34:45 -04:00
### Testing
- [tape ](https://github.com/substack/tape ) - [TAP ](http://testanything.org )-producing test harness.
- [Mocha ](http://visionmedia.github.io/mocha/ ) - A feature-rich test framework making asynchronous testing simple and fun.
2014-07-19 13:56:42 -04:00
- [loadtest ](https://github.com/alexfernandez/loadtest ) - Run load tests for your web application, with an API for automation.
2014-08-03 05:31:26 -04:00
- [istanbul ](https://github.com/gotwarlost/istanbul ) - A code coverage tool that computes statement, line, function and branch coverage with module loader hooks to transparently add coverage when running tests.
2014-07-11 09:34:45 -04:00
2014-08-12 10:13:13 -04:00
### Benchmarking
2014-09-11 17:03:59 -04:00
- [Benchmark.js ](http://benchmarkjs.com ) - A robust benchmarking library that works on nearly all JavaScript platforms, supports high-resolution timers, and returns statistically significant results.
2014-08-12 10:13:13 -04:00
- [matcha ](https://github.com/logicalparadox/matcha ) - A caffeine driven, simplistic approach to benchmarking.
2014-07-11 09:34:45 -04:00
### Minifiers
2014-07-12 13:03:00 -04:00
- [UglifyJS2 ](http://lisperator.net/uglifyjs/ ) - JavaScript minifier.
- [clean-css ](https://github.com/GoalSmashers/clean-css ) - CSS minifier.
2014-07-11 09:34:45 -04:00
- [minimize ](https://github.com/Moveo/minimize ) - HTML minifier.
2014-07-12 13:03:00 -04:00
- [imagemin ](https://github.com/kevva/imagemin ) - Image minifier.
2014-07-11 09:34:45 -04:00
### Authentication
- [Passport ](http://passportjs.org ) - Simple, unobtrusive authentication.
2014-07-25 18:29:52 -04:00
- [everyauth ](https://github.com/bnoguchi/everyauth ) - Authentication and authorization (password, facebook, & more) for your Connect and Express apps.
2014-09-12 00:36:59 -04:00
- [passwordless ](https://passwordless.net ) - Token-based authentication middleware for Express allowing authentication without passwords.
2014-07-11 09:34:45 -04:00
### Node.js management
- [n ](https://github.com/visionmedia/n ) - Node.js version management.
- [nave ](https://github.com/isaacs/nave ) - Virtual Environments for Node.js.
2014-07-12 05:29:48 -04:00
- [nodeenv ](https://github.com/ekalinin/nodeenv ) - A Node.js virtual environment compatible to Python's virtualenv.
2014-07-11 09:34:45 -04:00
2014-07-29 20:19:23 -04:00
### Email
2014-07-29 20:26:55 -04:00
2014-07-29 20:19:23 -04:00
- [Nodemailer ](https://github.com/andris9/Nodemailer ) - The fastest way to handle email.
2014-07-11 09:34:45 -04:00
### Polyfills
2014-07-12 13:03:00 -04:00
- [object-assign ](https://github.com/sindresorhus/object-assign ) - ES6 Object.assign() polyfill.
- [harmony-reflect ](https://github.com/tvcutsem/harmony-reflect ) - ES6 Reflect and Proxy polyfill.
- [es6-shim ](https://github.com/paulmillr/es6-shim ) - Collection of ES6 polyfills.
- More ES6 polyfills at [es6-tools ](https://github.com/addyosmani/es6-tools#polyfills ).
2014-08-10 05:38:55 -04:00
### Natural language processing
2014-08-02 08:46:20 -04:00
2014-08-09 08:46:59 -04:00
- [natural ](https://github.com/NaturalNode/natural ) - A general natural language facility.
2014-08-02 08:46:20 -04:00
- [retext ](https://github.com/wooorm/retext ) - An extensible natural language system.
2014-08-09 17:42:26 -04:00
- [leven ](https://github.com/sindresorhus/leven ) - Measure the difference between two strings using the Levenshtein distance algorithm.
2014-08-02 08:46:20 -04:00
2014-08-09 19:04:14 -04:00
### Process management
- [node-windows ](https://github.com/coreybutler/node-windows ) - Run scripts as a native Windows service and log to the Event viewer.
- [node-mac ](https://github.com/coreybutler/node-mac ) - Run scripts as a native Mac daemon and log to the console app.
2014-08-10 05:38:55 -04:00
- [node-linux ](https://github.com/coreybutler/node-linux ) - Run scripts as native system service and log to syslog.
2014-08-09 19:04:14 -04:00
- [forever ](https://github.com/nodejitsu/forever ) - A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
- [supervisor ](https://github.com/isaacs/node-supervisor ) - Restart scripts when they crash or restart when a `*.js` file changes.
2014-08-21 06:13:43 -04:00
- [PM2 ](https://github.com/Unitech/pm2 ) - Advanced Process Manager.
2014-09-12 03:48:42 -04:00
- [Phusion Passenger ](https://www.phusionpassenger.com/node_weekly ) - Friendly process manager that integrates directly into Nginx.
2014-08-09 19:04:14 -04:00
2014-07-12 13:03:00 -04:00
### AST
2014-07-29 09:20:57 -04:00
- [Acorn ](https://github.com/marijnh/acorn/ ) - A tiny, fast JavaScript parser.
2014-07-12 13:03:00 -04:00
- [Rocambole ](https://github.com/millermedeiros/rocambole ) - Recursively walk and transform JavaScript AST.
### Weird
- [superb ](https://github.com/sindresorhus/superb ) - Get superb like words.
- [cool-ascii-faces ](https://github.com/maxogden/cool-ascii-faces ) - Get some cool ascii faces.
2014-07-11 09:34:45 -04:00
### Miscellaneous
- [multiline ](https://github.com/sindresorhus/multiline ) - Multiline strings in JavaScript.
2014-07-12 13:03:00 -04:00
- [opn ](https://github.com/sindresorhus/opn ) - Opens stuff like websites, files, executables.
2014-07-11 09:34:45 -04:00
- [semver ](https://github.com/isaacs/node-semver ) - [semver ](http://semver.org ) parser.
- [cheerio ](https://github.com/cheeriojs/cheerio ) - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
2014-07-25 18:29:52 -04:00
- [require-uncached ](https://github.com/sindresorhus/require-uncached ) - Require a module bypassing the cache.
2014-07-12 13:03:00 -04:00
- [Faker.js ](https://github.com/Marak/Faker.js ) - Generate massive amounts of fake data.
2014-07-29 22:21:36 -04:00
- [Bottleneck ](https://github.com/SGrondin/bottleneck ) - A powerful rate limiter that makes throttling easy.
2014-08-07 11:07:12 -04:00
- [stringify-object ](https://github.com/yeoman/stringify-object ) - Stringify an object/array like JSON.stringify just without all the double-quotes.
2014-08-09 08:46:59 -04:00
- [strip-bom ](https://github.com/sindresorhus/strip-bom ) - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
- [shelljs ](https://github.com/arturadib/shelljs ) - Portable Unix shell commands.
- [nan ](https://github.com/rvagg/nan ) - A header file filled with macro and utility goodness for making add-on development for across Node.js versions easier.
2014-08-13 12:05:52 -04:00
- [ssh2 ](https://github.com/mscdex/ssh2 ) - An SSH2 client module.
2014-09-11 17:03:59 -04:00
- [lazy-req ](https://github.com/sindresorhus/lazy-req ) - Require modules lazily.
2014-09-12 07:58:49 -04:00
- [webworker-threads ](https://github.com/audreyt/node-webworker-threads ) - Lightweight Web Worker API implementation with native threads.
2014-09-12 09:36:03 -04:00
- [node-pre-gyp ](https://github.com/mapbox/node-pre-gyp/ ) - Makes it easy to publish and install Node.js C++ addons from binaries.
2014-07-11 09:34:45 -04:00
## Resources
### Tutorials
- [Nodeschool ](http://nodeschool.io ) - Learn Node.js with interactive lessons.
- [The Art of Node ](https://github.com/maxogden/art-of-node/#the-art-of-node ) - An introduction to Node.js.
- [stream-handbook ](https://github.com/substack/stream-handbook ) - How to write Node.js programs with streams.
2014-07-15 05:07:38 -04:00
- [browserify-handbook ](https://github.com/substack/browserify-handbook ) - The definitive guide for browserify.
2014-07-11 09:34:45 -04:00
### Articles
- [Error Handling in Node.js ](http://www.joyent.com/developers/node/design/errors )
### Videos
- [Introduction to Node.js with Ryan Dahl ](https://www.youtube.com/watch?v=jo_B4LTHi3I )
### Podcasts
- [NodeUp ](http://nodeup.com )
### Books
- [Node.js in Action ](http://www.amazon.com/Node-js-Action-Mike-Cantelon/dp/1617290572 )
2014-07-13 19:35:37 -04:00
- [Mastering Node ](http://visionmedia.github.io/masteringnode/ )
- [Professional Node.js: Building Javascript Based Scalable Software ](http://www.amazon.com/Professional-Node-js-Building-Javascript-Scalable-ebook/dp/B009L7QETY/ )
2014-09-11 19:45:29 -04:00
- [Practical Node.js: Building Real-World Scalable Web Apps ](http://practicalnodebook.com )
2014-07-11 09:34:45 -04:00
2014-07-12 13:03:00 -04:00
### Blogs
- [Node.js blog ](http://blog.nodejs.org )
- [HowToNode ](http://howtonode.org ) - Teaching how to do various tasks in Node.js as well as teach fundamental concepts that are needed to write effective code.
2014-07-11 09:34:45 -04:00
### Courses
- [Real Time Web with Node.js ](http://node.codeschool.com )
2014-07-11 14:50:56 -04:00
### Tools
2014-07-12 13:03:00 -04:00
- [GitHub Linker ](https://chrome.google.com/webstore/detail/github-linker/jlmafbaeoofdegohdhinkhilhclaklkp ) - Chrome extension that linkifies dependencies in package.json on GitHub.
2014-07-11 09:34:45 -04:00
## Contribute
Contributions welcome! Read the [contribution guidelines ](contributing.md ) first.
## License
[![CC0 ](http://i.creativecommons.org/p/zero/1.0/88x31.png )](http://creativecommons.org/publicdomain/zero/1.0/)
To the extent possible under law, [Sindre Sorhus ](http://sindresorhus.com ) has waived all copyright and related or neighboring rights to this work.