├── contributing.md └── readme.md /contributing.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please ensure your pull request adheres to the following guidelines: 4 | 5 | - Search previous suggestions before making a new one, as yours may be a duplicate. 6 | - Suggested packages should be tested and documented. 7 | - Make an individual pull request for each suggestion. 8 | - Use the following format: `[package](link) - Description.` 9 | - New categories, or improvements to the existing categorization are welcome. 10 | - Keep descriptions short and simple, but descriptive. 11 | - Don't mention `Node.js` in the description as it's implied. 12 | - Start the description with a capital and end with a full stop/period. 13 | - Check your spelling and grammar. 14 | - Make sure your text editor is set to remove trailing whitespace. 15 | - The pull request should include a link to the package and why it should be included. 16 | 17 | Thank you for your suggestions! 18 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Awesome Node.js 2 | 3 | > A curated list of delightful Node.js [packages](#packages) and [resources](#resources). 4 | 5 | Inspired by the [awesome](https://github.com/sindresorhus/awesome) list thing. 6 | 7 | 8 | ## Packages 9 | 10 | - [Functional programming](#functional-programming) 11 | - [Command-line apps](#command-line-apps) 12 | - [HTTP](#http) 13 | - [Debugging / Profiling](#debugging--profiling) 14 | - [Logging](#logging) 15 | - [Web frameworks](#web-frameworks) 16 | - [Command-line utilities](#command-line-utilities) 17 | - [Package managers](#package-managers) 18 | - [Build tools](#build-tools) 19 | - [Templating](#templating) 20 | - [Documentation](#documentation) 21 | - [Filesystem](#filesystem) 22 | - [Control flow](#control-flow) 23 | - [Streams](#streams) 24 | - [Real-time](#real-time) 25 | - [Date](#date) 26 | - [Image](#image) 27 | - [Text](#text) 28 | - [Math](#math) 29 | - [Data validation](#data-validation) 30 | - [Parsing](#parsing) 31 | - [Humanize](#humanize) 32 | - [Compression](#compression) 33 | - [Network](#network) 34 | - [Static site generators](#static-site-generators) 35 | - [Content management systems](#content-management-systems) 36 | - [Forum](#forum) 37 | - [Blogging](#blogging) 38 | - [Database](#database) 39 | - [Testing](#testing) 40 | - [Benchmarking](#benchmarking) 41 | - [Minifiers](#minifiers) 42 | - [Authentication](#authentication) 43 | - [Node.js management](#nodejs-management) 44 | - [Email](#email) 45 | - [Polyfills](#polyfills) 46 | - [Natural language processing](#natural-language-processing) 47 | - [Process management](#process-management) 48 | - [AST](#ast) 49 | - [Weird](#weird) 50 | - [Miscellaneous](#miscellaneous) 51 | 52 | 53 | ### Functional programming 54 | 55 | - [Lo-Dash](http://lodash.com) - A utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js. 56 | - [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. 57 | - [mori](http://swannodette.github.io/mori/) - A library for using ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript. 58 | - [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. 59 | - [immutable](https://github.com/facebook/immutable-js) - Immutable data collections. 60 | 61 | 62 | ### Command-line apps 63 | 64 | - [Yo](https://github.com/yeoman/yo) - Run Yeoman generators. 65 | - [Pageres](https://github.com/sindresorhus/pageres) - Responsive website screenshots. 66 | - [trash](https://github.com/sindresorhus/trash) - A safer alternative to `rm`. 67 | - [ESLint](http://eslint.org) - The pluggable linting utility for JavaScript. 68 | - [JSHint](http://jshint.com) - A community-driven tool to detect errors and potential problems in JavaScript code. 69 | - [cpy](https://github.com/sindresorhus/cpy) - Copy files. 70 | - [torrent](https://github.com/maxogden/torrent) - Download torrents. 71 | - [David](https://github.com/alanshaw/david) - Tells you when your package npm dependencies are out of date. 72 | - [vtop](https://github.com/MrRio/vtop) - More better top, with nice charts. 73 | - [tmpin](https://github.com/sindresorhus/tmpin) - Adds stdin support to any CLI app that accepts file input. 74 | - [normit](https://github.com/pawurb/normit) - Google Translate with speech synthesis in your terminal. 75 | - [esformatter](https://github.com/millermedeiros/esformatter) - JavaScript code beautifier/formatter. 76 | 77 | 78 | ### HTTP 79 | 80 | - [request](https://github.com/mikeal/request) - Simplified HTTP request client. 81 | - [got](https://github.com/sindresorhus/got) / [sent](https://github.com/floatdrop/sent) - A nicer interface to the built-in `http` module. 82 | - [superagent](https://github.com/visionmedia/superagent) - A small progressive HTTP request library. 83 | - [hyperquest](https://github.com/substack/hyperquest) - Streaming HTTP requests. 84 | - [spdy](https://github.com/indutny/node-spdy) - Creates SPDY servers with the same API as the built-in `https` module. 85 | - [Nock](https://github.com/pgte/nock) - A HTTP mocking and expectations library. 86 | - [download](https://github.com/kevva/download) - Download and extract files effortlessly. 87 | 88 | 89 | ### Debugging / Profiling 90 | 91 | - [node-inspector](https://github.com/node-inspector/node-inspector) - Debugger based on Blink Developer Tools. 92 | - [Theseus](https://github.com/adobe-research/theseus) - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree. 93 | - [longjohn](https://github.com/mattinsler/longjohn) - Long stack traces with configurable call trace length. 94 | - [debug](https://github.com/visionmedia/debug) - Tiny debugging utility. 95 | - [jstrace](https://github.com/jstrace/jstrace) - Dynamic tracing for JavaScript, similar to dtrace, ktap etc. 96 | - [TraceGL](https://github.com/traceglMPL/tracegl) - Transforms your JavaScript, injecting monitoring code that produces a log of everything that happens. 97 | - [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. 98 | - [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. 99 | - [vstream](https://github.com/joyent/node-vstream) - Instrumentable streams mix-ins to inspect a pipeline of streams. 100 | 101 | 102 | ### Logging 103 | 104 | - [winston](https://github.com/flatiron/winston) - A multi-transport async logging library. 105 | - [Bunyan](https://github.com/trentm/node-bunyan) - A simple and fast JSON logging library. 106 | 107 | 108 | ### Web frameworks 109 | 110 | - [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. 111 | - [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. 112 | - [Hapi](http://hapijs.com) - A rich framework for building applications and services. 113 | - [Meteor](https://www.meteor.com) - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. 114 | - [SailsJS](http://sailsjs.org) - An MVC web framework with a modern twist, supporting WebSockets, streams, and a data-driven API. 115 | - [Restify](http://mcavage.me/node-restify/) - A node framework built specifically to enable you to build correct REST web services. 116 | - [Derby](https://github.com/derbyjs/derby) - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers. 117 | 118 | 119 | ### Command-line utilities 120 | 121 | - [chalk](https://github.com/sindresorhus/chalk) - Terminal string styling done right. 122 | - [minimist](https://github.com/substack/minimist) - Parse command-line flags 123 | - [Inquirer.js](https://github.com/SBoudrias/Inquirer.js) - Interactive command-line prompt. 124 | - [update-notifier](https://github.com/yeoman/update-notifier) - Update notifications for your CLI app. 125 | - [sudo-block](https://github.com/sindresorhus/sudo-block) - Block users from running your app with root permissions. 126 | - [configstore](https://github.com/yeoman/configstore) - Easily load and persist config without having to think about where and how. 127 | - [insight](https://github.com/yeoman/insight) - Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics. 128 | - [blessed](https://github.com/chjj/blessed) - A curses-like library. 129 | - [cli-table](https://github.com/LearnBoost/cli-table) - Pretty unicode tables. 130 | - [drawille](https://github.com/madbence/node-drawille) - Draw on the terminal with unicode braille characters. 131 | - [progress](https://github.com/visionmedia/node-progress) - Flexible ascii progress bar. 132 | - [log-symbols](https://github.com/sindresorhus/log-symbols) - Colored symbols for various log levels. 133 | - [columnify](https://github.com/timoxley/columnify) - Create text-based columns suitable for console output. Supports cell wrapping. 134 | - [googleauth](https://github.com/maxogden/googleauth) - Create and load persistent Google authentication tokens for command-line apps. 135 | - [figures](https://github.com/sindresorhus/figures) - Unicode symbols with Windows CMD fallbacks. 136 | 137 | 138 | ### Package managers 139 | 140 | - [npm](https://github.com/npm/npm/) - A package manager for Node.js and the web. 141 | - [Bower](http://bower.io) - A package manager for the web. 142 | - [Component](https://github.com/component/component) - A package manager for building better web apps. 143 | - [Duo](https://www.npmjs.org/package/duo) - The next `Component`. 144 | 145 | 146 | ### Build tools 147 | 148 | - [gulp.js](http://gulpjs.com) - Streaming and fast build system that favors code over config. 149 | - [grunt](http://gruntjs.com) - Task runner that can perform repetitive tasks like minification, compilation, unit testing, linting, etc. 150 | - [Broccoli](https://github.com/broccolijs/broccoli) - A fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions. 151 | - [browserify](https://github.com/substack/node-browserify) - Browser-side require() the Node.js way. 152 | 153 | 154 | ### Templating 155 | 156 | - [handlebars.js](https://github.com/wycats/handlebars.js/) - A superset of Mustache templates which adds powerful features like helpers and more advanced blocks. 157 | - [hogan.js](http://twitter.github.io/hogan.js/) - Twitter's small, fast, phase-separated compiler for Mustache templates. 158 | - [Jade](https://github.com/visionmedia/jade) - High performance template engine heavily influenced by Haml. 159 | - [nunjucks](https://github.com/mozilla/nunjucks) - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired). 160 | 161 | 162 | ### Documentation 163 | 164 | - [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. 165 | - [JSDoc](http://usejsdoc.org) - API documentation generator similar to JavaDoc or PHPDoc. 166 | - [dox](https://github.com/visionmedia/dox) - JavaScript documentation generator using Markdown and JSDoc. 167 | - [jsdox](https://github.com/sutoiku/jsdox) - JSDoc3 to Markdown documentation generator. 168 | 169 | 170 | ### Filesystem 171 | 172 | - [del](https://github.com/sindresorhus/del) - Delete files/folders using globs. 173 | - [globby](https://github.com/sindresorhus/globby) - Glob files with support for multiple patterns. 174 | - [cpy](https://github.com/sindresorhus/cpy) - Copy files. 175 | - [rimraf](https://github.com/isaacs/rimraf) - Recursively delete files like `rm -rf`. 176 | - [mkdirp](https://github.com/substack/node-mkdirp) - Recursively create directories like `mkdir -p`. 177 | - [graceful-fs](https://github.com/isaacs/node-graceful-fs) - Drop-in replacement for the `fs` module with various improvements. 178 | - [fs-extra](https://github.com/jprichardson/node-fs-extra) - Extra methods for the `fs` module. 179 | 180 | 181 | ### Control flow 182 | 183 | - Callbacks 184 | - [each-async](https://github.com/sindresorhus/each-async) - Async concurrent iterator like forEach. 185 | - [async](https://github.com/caolan/async) - Provides straight-forward, powerful functions for working with asynchronousity. 186 | - Generators 187 | - [co](https://github.com/visionmedia/co) - The ultimate generator based flow-control goodness. 188 | - Promises 189 | - [native-promise-only](https://www.npmjs.org/package/native-promise-only) - A polyfill for native ES6 Promises. 190 | - [Bluebird](https://github.com/petkaantonov/bluebird) - A fully featured promise library with focus on innovative features and performance. 191 | - [Q](https://github.com/kriskowal/q) - A tool for making and composing asynchronous promises. 192 | - Streams 193 | - [Highland.js](http://highlandjs.org) - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams. 194 | 195 | 196 | ### Streams 197 | 198 | - [through2](https://github.com/rvagg/through2) - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise. 199 | - [concat-stream](https://github.com/maxogden/concat-stream) - Concatenates a stream into strings or binary data. 200 | - [simple-bufferstream](https://github.com/rvagg/node-simple-bufferstream) - Turn a Buffer into a ReadableStream. 201 | - [co-stream](https://github.com/juliangruber/co-stream) - [co](https://github.com/visionmedia/co) generator stream. 202 | - [byline](https://www.npmjs.org/package/byline) - Super-simple line-by-line Stream reader. 203 | - [first-chunk-stream](https://github.com/sindresorhus/first-chunk-stream) - Transform the first chunk in a stream. 204 | - [duplexify](https://github.com/mafintosh/duplexify) - Turn a writeable and readable stream into a single streams2 duplex stream. 205 | - [pumpify](https://github.com/mafintosh/pumpify) - Combine an array of streams into a single duplex stream. 206 | - [from2](https://github.com/hughsk/from2) - Convenience wrapper for ReadableStream, inspired by `through2`. 207 | - [from2-array](https://github.com/binocarlos/from2-array) - Create a `from2` stream based on an array of source values. 208 | - [peek-stream](https://github.com/mafintosh/peek-stream) - Transform stream that lets you peek the first line before deciding how to parse it. 209 | - [binary-split](https://github.com/maxogden/binary-split) - A fast newline (or any delimiter) splitter stream. 210 | - [multistream](https://github.com/feross/multistream) - Combine multiple streams into a single stream. 211 | - [graphicsmagick-stream](https://github.com/e-conomic/graphicsmagick-stream/) - Fast convertion/scaling of images using a pool of long lived graphicsmagick processes. 212 | 213 | 214 | ### Real-time 215 | 216 | - [Socket.io](http://socket.io) - Enables real-time bidirectional event-based communication. 217 | - [SocketCluster](https://github.com/topcloud/socketcluster) - Scalable HTTP + WebSocket engine which can run on multiple CPU cores. 218 | - [Primus](https://github.com/primus/primus) - An abstraction layer for real-time frameworks to prevent module lock-in. 219 | 220 | 221 | ### Date 222 | 223 | - [Moment.js](http://momentjs.com) - Parse, validate, manipulate, and display dates. 224 | - [dateformat](https://github.com/felixge/node-dateformat) - Date formatting. 225 | 226 | 227 | ### Image 228 | 229 | - [sharp](https://github.com/lovell/sharp) - The fastest module for resizing JPEG, PNG, WebP and TIFF images. 230 | - [image-type](https://github.com/sindresorhus/image-type) - Detect the image type of a Buffer/Uint8Array. 231 | - [gm](https://github.com/aheckmann/gm) - GraphicsMagick and ImageMagick wrapper. 232 | 233 | 234 | ### Text 235 | 236 | - [Underscore.string](https://github.com/epeli/underscore.string) - Collection of string manipulation utilities. 237 | - [he](https://github.com/mathiasbynens/he) - A robust HTML entity encoder/decoder. 238 | - [iconv-lite](https://github.com/ashtuchkin/iconv-lite) - Convert character encodings. 239 | - [escape-string-regexp](https://github.com/sindresorhus/escape-string-regexp) - Escape RegExp special characters. 240 | - [indent-string](https://github.com/sindresorhus/indent-string) - Indent each line in a string. 241 | - [strip-indent](https://github.com/sindresorhus/strip-indent) - Strip leading whitespace from every line in a string. 242 | - [detect-indent](https://github.com/sindresorhus/detect-indent) - Detect the indentation of code. 243 | - [i18n-node](https://github.com/mashpie/i18n-node) - Simple translation module with dynamic JSON storage. 244 | - [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. 245 | 246 | 247 | ### Math 248 | 249 | - [ndarray](https://github.com/mikolalysenko/ndarray) - Multidimensional arrays. 250 | - [mathjs](https://github.com/josdejong/mathjs) - An extensive math library. 251 | 252 | 253 | ### Data validation 254 | 255 | - [joi](https://github.com/spumko/joi) - Object schema description language and validator for JavaScript objects. 256 | 257 | 258 | ### Parsing 259 | 260 | - [css](https://github.com/reworkcss/css) - CSS parser / stringifier. 261 | - [strip-json-comments](https://github.com/sindresorhus/strip-json-comments) - Strip comments from JSON. 262 | - [marked](https://github.com/chjj/marked) - A markdown parser and compiler built for speed. 263 | - [js-yaml](https://github.com/nodeca/js-yaml) - Very fast YAML parser. 264 | - [URI.js](https://github.com/medialize/URI.js) - URL mutation. 265 | - [JSONStream](https://github.com/dominictarr/JSONStream) - Streaming JSON.parse and stringify. 266 | - [csv-parser](https://github.com/mafintosh/csv-parser) - Streaming CSV parser that aims to be faster than everyone else. 267 | - [excel-stream](https://github.com/dominictarr/excel-stream) - Streaming Excel spreadsheet to JSON parser. 268 | - [parse5](https://github.com/inikulin/parse5) - Fast full-featured spec compliant HTML parser. 269 | - [htmlparser2](https://github.com/fb55/htmlparser2/) - Forgiving HTML/XML parser. 270 | - [PostCSS](https://github.com/postcss/postcss) - Framework for CSS postprocessors, to modify CSS. 271 | 272 | 273 | ### Humanize 274 | 275 | - [pretty-bytes](https://github.com/sindresorhus/pretty-bytes) - Convert bytes to a human readable string: `1337` → `1.34 kB`. 276 | - [pretty-ms](https://github.com/sindresorhus/pretty-ms) - Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s`. 277 | - [ms](https://github.com/guille/ms.js) - Tiny milisecond conversion utility. 278 | - [pretty-error](https://github.com/AriaMinaei/pretty-error) - Errors with less clutter. 279 | - [humanize](https://github.com/taijinlee/humanize) - Data formatter for human readability. 280 | - [node-read](https://github.com/bndr/node-read) - Extract readable content from any page. 281 | 282 | 283 | ### Compression 284 | 285 | - [Archiver](https://github.com/ctalkington/node-archiver) - Streaming interface for archive generation, supporting ZIP and TAR. 286 | - [decompress-zip](https://github.com/bower/decompress-zip) - Unzip. 287 | - [tar-stream](https://github.com/mafintosh/tar-stream) - Streaming tar parser and generator. Also see [tar-fs](https://github.com/mafintosh/tar-fs). 288 | - [decompress](https://github.com/kevva/decompress) - A pluggable decompression module with support for `tar`, `tar.gz` and `zip` files out of the box. 289 | 290 | 291 | ### Network 292 | 293 | - [get-port](https://github.com/sindresorhus/get-port) - Get an available port. 294 | - [ipify](https://github.com/sindresorhus/ipify) - Get your public IP address. 295 | 296 | 297 | ### Static site generators 298 | 299 | - [Metalsmith](http://www.metalsmith.io) - An extremely simple, pluggable static site generator. 300 | - [Wintersmith](http://wintersmith.io) - Flexible, minimalistic, multi-platform static site generator. 301 | - [Assemble](http://assemble.io) - Static site generator for Node.js, Grunt.js, and Yeoman. 302 | 303 | 304 | ### Content management systems 305 | 306 | - [KeystoneJS](http://keystonejs.com) - CMS and web application platform built on Express and MongoDB. 307 | - [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. 308 | - [Apostrophe2](http://apostrophenow.org/) - A content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB. 309 | 310 | 311 | ### Forum 312 | 313 | - [nodeBB](https://nodebb.org) - A better forum platform for the modern web. 314 | 315 | 316 | ### Blogging 317 | 318 | - [ghost](https://ghost.org) - Simple, powerful publishing platform that allows you to share your story with the world. 319 | - [Hexo](http://hexo.io) - Fast, simple and powerful blogging framework. 320 | 321 | 322 | ### Database 323 | 324 | - Drivers 325 | - [LevelUP](https://github.com/rvagg/node-levelup) - LevelDB. 326 | - [MongoDB](https://github.com/mongodb/node-mongodb-native) - MongoDB driver. 327 | - [PostgreSQL](https://github.com/brianc/node-postgres) - PostgreSQL client. Pure JavaScript and native libpq bindings. 328 | - [MySQL](https://github.com/felixge/node-mysql) - MySQL client. 329 | - [Redis](https://github.com/mranney/node_redis) - Redis client. 330 | - ODM / ORM 331 | - [Bookshelf](http://bookshelfjs.org/) - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js. 332 | - [JugglingDB](https://github.com/1602/jugglingdb) - Multi-database ORM with a common API. Supports Redis, PostgreSQL, MongoDB, MySQL, SQLite, Neo4j, memory, and more. 333 | - [Mongoose](http://mongoosejs.com/) - Elegant MongoDB object modeling. 334 | - [Sequelize](https://github.com/sequelize/sequelize) - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL. 335 | - Query builder 336 | - [Knex](http://knexjs.org/) - A query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use. 337 | 338 | 339 | ### Testing 340 | 341 | - [tape](https://github.com/substack/tape) - [TAP](http://testanything.org)-producing test harness. 342 | - [Mocha](http://visionmedia.github.io/mocha/) - A feature-rich test framework making asynchronous testing simple and fun. 343 | - [loadtest](https://github.com/alexfernandez/loadtest) - Run load tests for your web application, with an API for automation. 344 | - [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. 345 | 346 | 347 | ### Benchmarking 348 | 349 | - [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. 350 | - [matcha](https://github.com/logicalparadox/matcha) - A caffeine driven, simplistic approach to benchmarking. 351 | 352 | 353 | ### Minifiers 354 | 355 | - [UglifyJS2](http://lisperator.net/uglifyjs/) - JavaScript minifier. 356 | - [clean-css](https://github.com/GoalSmashers/clean-css) - CSS minifier. 357 | - [minimize](https://github.com/Moveo/minimize) - HTML minifier. 358 | - [imagemin](https://github.com/kevva/imagemin) - Image minifier. 359 | 360 | 361 | ### Authentication 362 | 363 | - [Passport](http://passportjs.org) - Simple, unobtrusive authentication. 364 | - [everyauth](https://github.com/bnoguchi/everyauth) - Authentication and authorization (password, facebook, & more) for your Connect and Express apps. 365 | 366 | 367 | ### Node.js management 368 | 369 | - [n](https://github.com/visionmedia/n) - Node.js version management. 370 | - [nave](https://github.com/isaacs/nave) - Virtual Environments for Node.js. 371 | - [nodeenv](https://github.com/ekalinin/nodeenv) - A Node.js virtual environment compatible to Python's virtualenv. 372 | 373 | 374 | ### Email 375 | 376 | - [Nodemailer](https://github.com/andris9/Nodemailer) - The fastest way to handle email. 377 | 378 | 379 | ### Polyfills 380 | 381 | - [object-assign](https://github.com/sindresorhus/object-assign) - ES6 Object.assign() polyfill. 382 | - [harmony-reflect](https://github.com/tvcutsem/harmony-reflect) - ES6 Reflect and Proxy polyfill. 383 | - [es6-shim](https://github.com/paulmillr/es6-shim) - Collection of ES6 polyfills. 384 | - More ES6 polyfills at [es6-tools](https://github.com/addyosmani/es6-tools#polyfills). 385 | 386 | 387 | ### Natural language processing 388 | 389 | - [natural](https://github.com/NaturalNode/natural) - A general natural language facility. 390 | - [retext](https://github.com/wooorm/retext) - An extensible natural language system. 391 | - [leven](https://github.com/sindresorhus/leven) - Measure the difference between two strings using the Levenshtein distance algorithm. 392 | 393 | 394 | ### Process management 395 | 396 | - [node-windows](https://github.com/coreybutler/node-windows) - Run scripts as a native Windows service and log to the Event viewer. 397 | - [node-mac](https://github.com/coreybutler/node-mac) - Run scripts as a native Mac daemon and log to the console app. 398 | - [node-linux](https://github.com/coreybutler/node-linux) - Run scripts as native system service and log to syslog. 399 | - [forever](https://github.com/nodejitsu/forever) - A simple CLI tool for ensuring that a given script runs continuously (i.e. forever). 400 | - [supervisor](https://github.com/isaacs/node-supervisor) - Restart scripts when they crash or restart when a `*.js` file changes. 401 | - [PM2](https://github.com/Unitech/pm2) - Advanced Process Manager. 402 | 403 | 404 | ### AST 405 | 406 | - [Acorn](https://github.com/marijnh/acorn/) - A tiny, fast JavaScript parser. 407 | - [Rocambole](https://github.com/millermedeiros/rocambole) - Recursively walk and transform JavaScript AST. 408 | 409 | 410 | ### Weird 411 | 412 | - [superb](https://github.com/sindresorhus/superb) - Get superb like words. 413 | - [cool-ascii-faces](https://github.com/maxogden/cool-ascii-faces) - Get some cool ascii faces. 414 | 415 | 416 | ### Miscellaneous 417 | 418 | - [multiline](https://github.com/sindresorhus/multiline) - Multiline strings in JavaScript. 419 | - [opn](https://github.com/sindresorhus/opn) - Opens stuff like websites, files, executables. 420 | - [semver](https://github.com/isaacs/node-semver) - [semver](http://semver.org) parser. 421 | - [cheerio](https://github.com/cheeriojs/cheerio) - Fast, flexible, and lean implementation of core jQuery designed specifically for the server. 422 | - [require-uncached](https://github.com/sindresorhus/require-uncached) - Require a module bypassing the cache. 423 | - [Faker.js](https://github.com/Marak/Faker.js) - Generate massive amounts of fake data. 424 | - [peerflix](https://github.com/mafintosh/peerflix) - Streaming torrent client. 425 | - [BitcoinJS](http://bitcoinjs.org/) - The clean, readable, proven library for Bitcoin JavaScript development. 426 | - [Bottleneck](https://github.com/SGrondin/bottleneck) - A powerful rate limiter that makes throttling easy. 427 | - [PDFKit](http://pdfkit.org/) - A JavaScript PDF generation library. 428 | - [stringify-object](https://github.com/yeoman/stringify-object) - Stringify an object/array like JSON.stringify just without all the double-quotes. 429 | - [strip-bom](https://github.com/sindresorhus/strip-bom) - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream. 430 | - [shelljs](https://github.com/arturadib/shelljs) - Portable Unix shell commands. 431 | - [he](https://github.com/mathiasbynens/he) - A robust HTML entity encoder/decoder. 432 | - [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. 433 | - [ssh2](https://github.com/mscdex/ssh2) - An SSH2 client module. 434 | 435 | 436 | ## Resources 437 | 438 | ### Tutorials 439 | 440 | - [Nodeschool](http://nodeschool.io) - Learn Node.js with interactive lessons. 441 | - [The Art of Node](https://github.com/maxogden/art-of-node/#the-art-of-node) - An introduction to Node.js. 442 | - [stream-handbook](https://github.com/substack/stream-handbook) - How to write Node.js programs with streams. 443 | - [browserify-handbook](https://github.com/substack/browserify-handbook) - The definitive guide for browserify. 444 | 445 | ### Articles 446 | 447 | - [Error Handling in Node.js](http://www.joyent.com/developers/node/design/errors) 448 | 449 | ### Videos 450 | 451 | - [Introduction to Node.js with Ryan Dahl](https://www.youtube.com/watch?v=jo_B4LTHi3I) 452 | 453 | ### Podcasts 454 | 455 | - [NodeUp](http://nodeup.com) 456 | 457 | ### Books 458 | 459 | - [Node.js in Action](http://www.amazon.com/Node-js-Action-Mike-Cantelon/dp/1617290572) 460 | - [Mastering Node](http://visionmedia.github.io/masteringnode/) 461 | - [Professional Node.js: Building Javascript Based Scalable Software](http://www.amazon.com/Professional-Node-js-Building-Javascript-Scalable-ebook/dp/B009L7QETY/) 462 | 463 | ### Blogs 464 | 465 | - [Node.js blog](http://blog.nodejs.org) 466 | - [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. 467 | 468 | ### Courses 469 | 470 | - [Real Time Web with Node.js](http://node.codeschool.com) 471 | 472 | ### Tools 473 | 474 | - [GitHub Linker](https://chrome.google.com/webstore/detail/github-linker/jlmafbaeoofdegohdhinkhilhclaklkp) - Chrome extension that linkifies dependencies in package.json on GitHub. 475 | 476 | 477 | ## Contribute 478 | 479 | Contributions welcome! Read the [contribution guidelines](contributing.md) first. 480 | 481 | 482 | ## License 483 | 484 | [![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) 485 | 486 | To the extent possible under law, [Sindre Sorhus](http://sindresorhus.com) has waived all copyright and related or neighboring rights to this work. 487 | --------------------------------------------------------------------------------