List.community

Awesome Node.js Awesome

A curated list of delightful Node.js packages and resources.

Just type node.cool to go here

You might also like awesome-npm3k 160 . Please read the contribution guidelines before contributing.


🦄 Support my open-source work by buying this awesome video course:
Learn to build apps and APIs with Node.js by Wes Bos
Try his free JavaScript 30 course for a taste of what to expect & check out his ES6, React, Sublime courses.


Check out my blog and say "hi" on Twitter.

Contents

Packages

Mad science

  • webtorrent14k 1k - Streaming torrent client for Node.js and the browser.
  • peerflix5k 697 - Streaming torrent client.
  • dat - Real-time replication and versioning for data sets.
  • ipfs2k 293 - Distributed file system that seeks to connect all computing devices with the same system of files.
  • GitTorrent4k 242 - Peer-to-peer network of Git repositories being shared over BitTorrent.
  • stackgl - Open software ecosystem for WebGL, built on top of browserify and npm.
  • peerwiki64 5 - All of Wikipedia on BitTorrent.
  • peercast108 5 - Stream a torrent video to Chromecast.
  • BitcoinJS - Clean, readable, proven Bitcoin library.
  • Bitcore - Pure and powerful Bitcoin library.
  • PDFKit - PDF generation library.
  • turf4k 399 - Modular geospatial processing and analysis engine.
  • webcat362 14 - p2p pipe across the web using WebRTC that uses your GitHub private/public key for authentication.
  • NodeOS - The first operating system powered by npm.
  • limdu570 60 - Machine-learning framework.
  • Cytoscape.js - Graph theory (a.k.a. network) modeling and analysis.
  • kad185 50 - Kademlia distributed hash table.
  • seedshot88 7 - Temporary P2P screenshot sharing from your browser.
  • js-git3k 261 - JavaScript implementation of Git.
  • skale183 24 - High performance distributed data processing engine.

Command-line apps

  • np3k 144 - Better npm publish.
  • trash1k 36 - Safer alternative to rm.
  • npm-name48 8 - Check whether a package name is available on npm.
  • speed-test2k 101 - Test your internet connection speed and ping.
  • emoj1k 43 - Find relevant emoji from text on the command-line.
  • pageres8k 859 - Capture website screenshots.
  • cpy141 27 - Copy files.
  • vtop2k 118 - More better top, with nice charts.
  • empty-trash84 6 - Empty the trash.
  • is-up279 8 - Check whether a website is up or down.
  • is-online320 39 - Check if the internet connection is up.
  • public-ip240 18 - Get your public IP address.
  • clipboard-cli103 4 - Copy & paste on the terminal.
  • ttystudio3k 95 - Record your terminal and compile it to a GIF or APNG without any external dependencies, bash scripts, gif concatenation, etc.
  • XO - Enforce strict code style using the JavaScript happiness style.
  • Standard13k 1k - JavaScript Standard Style — One style to rule them all.
  • ESLint - The pluggable linting utility for JavaScript.
  • dev-time - Get the current local time of a GitHub user.
  • David796 104 - Tells you when your package npm dependencies are out of date.
  • http-server4k 603 - Simple, zero-config command-line HTTP server.
  • Live Server1k 217 - Development HTTP-server with livereload capability.
  • bcat179 8 - Pipe command output to web browsers.
  • normit172 11 - Google Translate with speech synthesis in your terminal.
  • slap4k 185 - Sublime-like terminal-based text editor.
  • jsinspect2k 69 - Detect copy-pasted and structurally similar code.
  • esformatter949 135 - JavaScript code beautifier/formatter.
  • fkill2k 37 - Fabulously kill processes. Cross-platform.
  • pjs328 13 - Pipeable JavaScript. Quickly filter, map, and reduce from the terminal.
  • license-checker520 97 - Check licenses of your app's dependencies.
  • browser-run302 34 - Easily run code in a browser environment.
  • tmpin40 0 - Adds stdin support to any CLI app that accepts file input.
  • modhelp18 2 - Syntax-highlighted module READMEs in terminal with ANSI-friendly pager.
  • wifi-password51 1 - Get the current wifi password.
  • wallpaper430 34 - Change the desktop wallpaper.
  • brightness97 5 - Change the screen brightness.
  • torrent504 61 - Download torrents.
  • tfa - Two-factor authentication client.
  • rtail1k 77 - Terminal output to the browser in seconds, using UNIX pipes.
  • kill-tabs214 10 - Kill all Chrome tabs to improve performance, decrease battery usage, and save memory.
  • alex2k 127 - Catch insensitive, inconsiderate writing.
  • vantage4k 110 - Distributed, realtime CLI for your live app.
  • pen138 8 - Live Markdown preview in the browser from your favorite editor.
  • subdownloader78 12 - Subtitle downloader for movies and TV series.
  • dark-mode190 19 - Toggle the macOS Dark Mode.
  • iponmap115 6 - IP location finder.
  • Jsome73 14 - Pretty prints JSON with configurable colors and indentation.
  • itunes-remote269 20 - Interactively control iTunes.
  • text-meme51 3 - Generate a text meme.
  • mobicon - Mobile app icon generator.
  • mobisplash - Mobile app splash screen generator.
  • diff2html-cli55 9 - Pretty git diff to HTML generator.
  • Cash8k 238 - Cross-platform Unix shell commands in pure JavaScript.
  • vaca81 5 - Get a random ASCII 🐮.
  • gh-home61 6 - Open the GitHub page of the repo in the current directory.
  • npm-home119 10 - Open the npm page of a package.
  • trymodule1k 41 - Try out npm packages in the terminal.
  • terminal-recorder52 5 - Record your terminal usage and export it to interactive HTML.
  • jscpd642 63 - Copy/paste detector for source code.
  • atmo430 15 - Server-side API mocking.
  • auto-install731 26 - Auto installs dependencies as you code.
  • lessmd60 1 - Markdown in the terminal.
  • cost-of-modules2k 39 - Find out which dependencies are slowing you down.
  • localtunnel3k 243 - Expose your localhost to the world.
  • svg-term-cli260 13 - Share terminal sessions via SVG.
  • gtop5k 170 - System monitoring dashboard for the terminal.

Functional programming

  • lodash - Utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.
  • immutable21k 1k - Immutable data collections.
  • mori - Library for using ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript.
  • Ramda - Utility library with a focus on flexible functional composition enabled by automatic currying and reversed argument order. Avoids mutating data.
  • Folktale - Suite of libraries for generic functional programming in JavaScript that allows you to write elegant, modular applications with fewer bugs, and more reuse.
  • underscore-contrib - The brass buckles on Underscore's utility belt.
  • Mout - 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.
  • Bacon.js - Functional reactive programming.
  • RxJS - Functional reactive library for transforming, composing, and querying various kinds of data.
  • Lazy.js4k 301 - Utility library similar to lodash/Underscore but with lazy evaluation, which can translate to superior performance in many cases.
  • Kefir.js841 66 - Reactive library with focus on high performance and low memory usage.

HTTP

  • got2k 176 - Nicer interface to the built-in http module.
  • gh-got86 26 - Convenience wrapper for got to interact with the GitHub API.
  • axios23k 2k - Promise based HTTP client (works in the browser too).
  • request17k 2k - Simplified HTTP request client.
  • Nock3k 285 - HTTP mocking and expectations library.
  • spdy2k 171 - Creates SPDY servers with the same API as the built-in https module.
  • wreck291 87 - HTTP Client Utilities.
  • download575 92 - Download and extract files effortlessly.
  • http-proxy7k 1k - HTTP proxy.
  • rocky285 29 - Featured, middleware-oriented HTTP proxy with traffic replay and intercept.
  • superagent13k 1k - HTTP request library.
  • node-fetch2k 271 - window.fetch for Node.js.
  • flashheart81 18 - REST client.
  • http-fake-backend91 3 - Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
  • cacheable-request25 3 - Wrap native HTTP requests with RFC compliant cache support.

Debugging / Profiling

  • ironNode3k 87 - Node.js debugger supporting ES2015 out of the box.
  • node-inspector12k 865 - Debugger based on Blink Developer Tools.
  • devtool4k 162 - Run Node.js programs through Chrome Dev Tools.
  • Theseus1k 46 - JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree.
  • debug5k 584 - Tiny debugging utility.
  • jstrace312 16 - Dynamic tracing for JavaScript, similar to dtrace, ktap etc.
  • why-is-node-running546 15 - Node.js is running but you don't know why?
  • njsTrace - Instrument and trace your code, see all function calls, arguments, return values, as well as the time spent in each function.
  • vstream43 1 - Instrumentable streams mix-ins to inspect a pipeline of streams.
  • stackman129 2 - Enhance an error stacktrace with code excerpts and other goodies.
  • locus207 9 - Starts a REPL at runtime that has access to all variables.
  • bugger75 4 - Provides Chrome Devtools bindings to debug programs in Chrome.
  • 0x633 38 - Flamegraph profiling.
  • ctrace86 3 - Well-formatted and improved trace system calls and signals.
  • leakage1k 23 - Write memory leak tests.

Logging

  • pino2k 141 - Extremely fast logger inspired by Bunyan.
  • winston5k 567 - Multi-transport async logging library.
  • Bunyan5k 431 - JSON logging library.
  • intel - Logging library (handlers, filters, formatters, console injection).
  • console-log-level14 5 - The most simple logger imaginable with support for log levels and custom prefixes.
  • storyboard328 15 - End-to-end, hierarchical, real-time, colorful logs and stories.

Command-line utilities

  • chalk4k 257 - Terminal string styling done right.
  • meow947 54 - CLI app helper.
  • minimist2k 168 - Parse command-line flags.
  • get-stdin109 14 - Easier stdin.
  • ora2k 65 - Elegant terminal spinner.
  • log-update388 18 - Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.
  • Inquirer.js7k 571 - Interactive command-line prompt.
  • listr - Terminal task list.
  • conf183 27 - Simple config handling for your app or module.
  • update-notifier755 68 - Update notifications for your CLI app.
  • ansi-escapes116 9 - ANSI escape codes for manipulating the terminal.
  • log-symbols224 13 - Colored symbols for various log levels.
  • figures168 11 - Unicode symbols with Windows CMD fallbacks.
  • boxen267 25 - Create boxes in the terminal.
  • string-width67 7 - Get the visual width of a string - the number of columns required to display it.
  • cli-truncate22 2 - Truncate a string to a specific width in the terminal.
  • first-run32 2 - Check if it's the first time the process is run.
  • vorpal4k 182 - Interactive CLI apps.
  • blessed6k 241 - Curses-like library.
  • yn76 10 - Parse yes/no like values.
  • cli-table590 48 - Pretty unicode tables.
  • drawille658 25 - Draw on the terminal with unicode braille characters.
  • sudo-block48 6 - Block users from running your app with root permissions.
  • googleauth27 4 - Create and load persistent Google authentication tokens for command-line apps.
  • ascii-charts202 18 - ASCII bar chart in the terminal.
  • progress520 53 - Flexible ascii progress bar.
  • insight370 41 - Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics.
  • cli-cursor54 10 - Toggle the CLI cursor.
  • columnify231 21 - Create text-based columns suitable for console output. Supports cell wrapping.
  • cli-columns6 2 - Columnated unicode and ansi-safe text lists.
  • cfonts216 8 - Sexy ASCII fonts for the console.
  • multispinner186 7 - Multiple, simultaneous, individually controllable CLI spinners.
  • omelette587 21 - Shell autocompletion helper.
  • cross-env2k 105 - Set environment variables cross-platform.
  • shelljs4k 283 - Portable Unix shell commands.
  • loud-rejection162 15 - Make unhandled promise rejections fail loudly instead of the default silent fail.
  • sparkly257 8 - Generate sparklines ▁▂▃▅▂▇
  • term-img168 9 - Display images in your terminal.
  • yargs3k 335 - Command-line parser that automatically generates an elegant user-interface.
  • DraftLog768 21 - Create multiple updatable log lines. Works just like console.log.
  • Bit991 62 - Create, maintain, find and use small modules and components across repositories.
  • gradient-string190 4 - Beautiful color gradients in terminal output.

Build tools

  • webpack42k 6k - Packs modules and assets for the browser.
  • rollup12k 627 - Next-generation ES2015 module bundler.
  • gulp - Streaming and fast build system that favors code over config.
  • browserify12k 1k - Browser-side require() the Node.js way.
  • Broccoli3k 219 - Fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions.
  • Brunch6k 542 - Front-end web app build tool with simple declarative config, fast incremental compilation, and an opinionated workflow.
  • strong-build41 10 - Build a node app package and prepare to deploy it as a package to production or use git to commit to a deploy branch.
  • start186 2 - Simple tasks runner powered by composable functions and promise chaining.
  • ygor - Promising task runner for when npm run isn't enough and everything else is too much.
  • grunt - Task runner that can perform repetitive tasks like minification, compilation, unit testing, linting, etc.
  • Fly368 25 - Modern build system based in co-routines, generators and promises.
  • FuseBox3k 251 - Fast build system that combines the power of webpack, JSPM and SystemJS, with first-class TypeScript support.
  • pkg7k 245 - Package your Node.js project into an executable.

Hardware

  • johnny-five9k 1k - Firmata based Arduino Framework.
  • serialport2k 521 - Access serial ports for reading and writing.
  • usb401 77 - USB library.
  • cylon.js - Next generation robotics framework with support for 26 different platforms.
  • i2c-bus90 15 - I2C serial bus access.
  • onoff585 94 - GPIO access and interrupt detection.
  • spi-device16 3 - SPI serial bus access.
  • pigpio219 18 - Fast GPIO, PWM, servo control, state change notification, and interrupt handling on the Raspberry Pi.

Templating

  • marko6k 338 - HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags.
  • nunjucks5k 472 - Templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
  • handlebars.js13k 2k - 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.
  • EJS2k 253 - Simple unopinionated templating language.
  • Pug6k 515 - High-performance template engine heavily influenced by Haml.

Web frameworks

  • Hapi - Framework for building applications and services.
  • Koa - 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 - Web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
  • Feathers - Microservice framework built in the spirit of Express.
  • LoopBack - Powerful framework for creating REST APIs and easily connecting to backend data sources.
  • Meteor - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. (You might like awesome-meteor1k 128 )
  • SailsJS - An MVC web framework with a modern twist, supporting WebSockets, streams, and a data-driven API.
  • Restify - Enables you to build correct REST web services.
  • Interfake830 48 - Rapid prototyping framework for making mock HTTP APIs, with a Node.js, command-line and HTTP interface.
  • Catberry - Framework with Flux architecture, isomorphic web-components, and progressive rendering.
  • ThinkJS - Framework with ES2015+ support, WebSockets, REST API.
  • ActionHero - Framework for making reusable & scalable APIs for TCP sockets, WebSockets, and HTTP clients.
  • MERN - Easily build production-ready universal apps with MongoDB, Express, React, and webpack.
  • Next.js - Minimalistic framework for server-rendered universal JavaScript web apps.
  • Nuxt.js - Minimalistic framework for server-rendered Vue.js apps.
  • seneca2k 186 - Toolkit for writing microservices.
  • AdonisJs - A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.
  • Hemera482 72 - Write reliable and fault-tolerant microservices with NATS.
  • Micro5k 262 - Minimalistic microservice framework with an async approach.

Documentation

  • Docco - Documentation generator which produces an HTML document that displays your comments intermingled with your code.
  • JSDoc - API documentation generator similar to JavaDoc or PHPDoc.
  • dox2k 215 - JavaScript documentation generator using Markdown and JSDoc.
  • jsdox202 65 - JSDoc3 to Markdown documentation generator.
  • apiDoc5k 989 - Inline documentation for RESTful web APIs.
  • documentation.js - API documentation generator with support for ES2015+ and flow annotation.
  • YUIDoc - Generates API documentation from comments in source.
  • ESDoc - Documentation generator targeting ES2015, attaching test code and measuring documentation coverage.

Filesystem

  • del666 37 - Delete files/folders using globs.
  • globby370 38 - Glob files with support for multiple patterns.
  • cpy141 27 - Copy files.
  • rimraf2k 143 - Recursively delete files like rm -rf.
  • make-dir186 5 - Recursively create directories like mkdir -p.
  • graceful-fs645 82 - Drop-in replacement for the fs module with various improvements.
  • chokidar3k 304 - Filesystem watcher which stabilizes events from fs.watch and fs.watchFile as well as using native fsevents on macOS.
  • find-up99 7 - Find a file by walking up parent directories.
  • proper-lockfile41 13 - Inter-process and inter-machine lockfile utility.
  • load-json-file73 14 - Read and parse a JSON file.
  • write-json-file65 11 - Stringify and write JSON to a file atomically.
  • fs-write-stream-atomic39 7 - Like fs.createWriteStream(), but atomic.
  • filenamify77 4 - Convert a string to a valid filename.
  • lnfs9 1 - Force create symlinks like ln -fs.
  • istextorbinary31 7 - Check if a file is text or binary.
  • fs-jetpack310 33 - Completely redesigned file system API for convenience in everyday use.
  • fs-extra4k 452 - Extra methods for the fs module.
  • pkg-dir46 5 - Find the root directory of an npm package.
  • sander - Promise-based replacement for the fs module.
  • filehound60 8 - Flexible and fluent interface for searching the file system.

Control flow

  • Promises
    • Bluebird16k 3k - Promise library with focus on innovative features and performance.
    • pify600 47 - Promisify a callback-style function.
    • delay130 13 - Delay a promise a specified amount of time.
    • promise-memoize8 4 - Memoize promise-returning functions, with expire and prefetch.
    • valvelet8 3 - Limit the execution rate of a promise-returning function.
    • p-map90 3 - Map over promises concurrently.
    • More…952 87
  • Observables
  • Generators
    • co9k 685 - The ultimate generator based flow-control goodness.
    • bluebird-co84 5 - High performance yield handlers for Bluebird coroutines.
    • iterum - Build generator pipelines using Array-like methods.
  • Streams
    • Highland.js - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
  • Callbacks
    • each-async62 3 - Async concurrent iterator like forEach.
    • async25k 3k - Provides straight-forward, powerful functions for working with asynchronicity.
  • Channels
    • js-csp2k 123 - Communicating sequential processes for JavaScript (like Clojurescript core.async, or Go).
  • Other
    • zone304 10 - Provides a way to group and track resources and errors across asynchronous operations.

Streams

  • through21k 92 - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise.
  • from284 13 - Convenience wrapper for ReadableStream, inspired by through2.
  • get-stream71 6 - Get a stream as a string or buffer.
  • into-stream40 3 - Convert a buffer/string/array/object into a stream.
  • duplexify116 14 - Turn a writeable and readable stream into a single streams2 duplex stream.
  • pumpify104 11 - Combine an array of streams into a single duplex stream.
  • peek-stream27 4 - Transform stream that lets you peek the first line before deciding how to parse it.
  • binary-split48 12 - Newline (or any delimiter) splitter stream.
  • byline232 44 - Super-simple line-by-line Stream reader.
  • first-chunk-stream13 1 - Transform the first chunk in a stream.
  • pad-stream10 2 - Pad each line in a stream.
  • multistream122 15 - Combine multiple streams into a single stream.
  • stream-combiner267 20 - Turn a pipeline into a single stream.
  • readable-stream299 95 - Mirror of Streams2 and Streams3 implementations in core.
  • through2-concurrent13 1 - Transform object streams concurrently.
  • graphicsmagick-stream60 11 - Fast conversion/scaling of images using a pool of long lived GraphicsMagick processes.

Real-time

  • µWebSockets6k 456 - Highly scalable WebSocket server & client library.
  • Socket.io - Enables real-time bidirectional event-based communication.
  • SockJS2k 275 - Low latency, full duplex, cross-domain channel browser-server, with WebSockets or without.
  • Faye - Real-time client-server message bus, based on Bayeux protocol.
  • SocketCluster3k 198 - Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
  • Primus4k 303 - An abstraction layer for real-time frameworks to prevent module lock-in.
  • Straw255 20 - Real-time dataflow framework.
  • deepstream.io - Scalable real-time microservice framework.
  • Kalm21 8 - Low-level socket router and middleware framework.
  • MQTT.js3k 553 - Client for MQTT - Pub-sub based messaging protocol for use on top of TCP/IP.

Image

  • sharp7k 484 - The fastest module for resizing JPEG, PNG, WebP and TIFF images.
  • image-type119 11 - Detect the image type of a Buffer/Uint8Array.
  • gm4k 500 - GraphicsMagick and ImageMagick wrapper.
  • lwip2k 189 - Lightweight image processor which does not require ImageMagick.
  • pica953 136 - High quality & fast resize (lanczos3) in pure JS. Alternative to canvas drawImage(), when no pixelation allowed.
  • jimp4k 273 - Image processing in pure JavaScript.
  • is-progressive181 8 - Check if a JPEG image is progressive.
  • probe-image-size88 13 - Get the size of most image formats without a full download.

Text

  • Underscore.string3k 468 - Collection of string manipulation utilities.
  • iconv-lite1k 196 - Convert character encodings.
  • string-length32 4 - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes.
  • camelcase129 27 - Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar.
  • escape-string-regexp139 19 - Escape RegExp special characters.
  • execall59 2 - Find multiple RegExp matches in a string.
  • splice-string12 2 - Remove or replace part of a string like Array#splice.
  • indent-string37 8 - Indent each line in a string.
  • strip-indent45 7 - Strip leading whitespace from every line in a string.
  • detect-indent95 16 - Detect the indentation of code.
  • he1k 87 - HTML entity encoder/decoder.
  • i18n-node2k 301 - Simple translation module with dynamic JSON storage.
  • babelfish171 12 - i18n with very easy syntax for plurals.
  • hanging-indent - Format a string into a hanging-indented paragraph.
  • matcher284 10 - Simple wildcard matching.
  • unhomoglyph - Normalize visually similar unicode characters.

Number

  • random-int23 2 - Generate a random integer.
  • random-float12 2 - Generate a random float.
  • unique-random10 0 - Generate random numbers that are consecutively unique.
  • round-to74 7 - Round a number to a specific number of decimal places: 1.2341.2.

Math

Date

  • date-fns8k 335 - Modern date utility.
  • Moment.js - Parse, validate, manipulate, and display dates.
  • Moment Timezone - IANA Time Zone Database + Moment.js.
  • dateformat672 98 - Date formatting.
  • tz-format - Format a date with timezone: 2015-11-30T10:40:35+01:00.
  • cctz43 1 - Fast parsing, formatting, and timezone conversation for dates.

URL

Data validation

  • joi7k 829 - Object schema description language and validator for JavaScript objects.
  • is-my-json-valid753 102 - JSON Schema validator that uses code generation to be extremely fast.
  • property-validator162 10 - Easy property validation for Express.
  • schema-inspector415 44 - JSON API sanitization and validation.
  • ajv3k 310 - The fastest JSON Schema validator. Supports v5 proposals.

Parsing

  • remark563 70 - Markdown processor powered by plugins.
  • markdown-it4k 389 - Markdown parser with 100% CommonMark support, extensions and syntax plugins.
  • parse52k 114 - Fast full-featured spec compliant HTML parser.
  • strip-json-comments294 32 - Strip comments from JSON.
  • strip-css-comments76 8 - Strip comments from CSS.
  • parse-json191 25 - Parse JSON with more helpful errors.
  • URI.js5k 456 - URL mutation.
  • PostCSS19k 1k - CSS parser / stringifier.
  • JSONStream1k 119 - Streaming JSON.parse and stringify.
  • neat-csv55 4 - Fast CSV parser. Callback interface for the above.
  • csv-parser303 45 - Streaming CSV parser that aims to be faster than everyone else.
  • PEG.js3k 352 - Simple parser generator that produces fast parsers with excellent error reporting.
  • x-ray4k 316 - Web scraping utility.
  • nearley2k 95 - Simple, fast, powerful parsing for JavaScript.
  • binary-extract138 5 - Extract a value from a buffer of JSON without parsing the whole thing.
  • json-mask476 27 - Tiny language and engine for selecting parts of an object, hiding/masking the rest.
  • Stylecow126 8 - Parse, manipulate and convert modern CSS to make it compatible with all browsers. Extensible with plugins.
  • js-yaml2k 376 - Very fast YAML parser.
  • excel-stream56 4 - Streaming Excel spreadsheet to JSON parser.
  • xml2js3k 335 - XML to JavaScript object converter.
  • Jison - Friendly JavaScript parser generator. It shares genes with Bison, Yacc and family.
  • google-libphonenumber319 49 - Parse, format, store and validate phone numbers.
  • ref241 53 - Read/write structured binary data in Buffers.
  • xlsx-populate98 18 - Read/write Excel XLSX.

Humanize

  • pretty-bytes302 28 - Convert bytes to a human readable string: 13371.34 kB.
  • pretty-ms262 20 - Convert milliseconds to a human readable string: 133700000015d 11h 23m 20s.
  • ms380 34 - Tiny millisecond conversion utility.
  • pretty-error808 26 - Errors with less clutter.
  • humanize248 20 - Data formatter for human readability.
  • read-art228 22 - Extract readable content from any page.

Compression

  • yazl91 15 - Zip.
  • yauzl197 24 - Unzip.
  • Archiver684 101 - Streaming interface for archive generation, supporting ZIP and TAR.
  • pako1k 173 - High speed zlib port to pure js (deflate, inflate, gzip).
  • tar-stream177 48 - Streaming tar parser and generator. Also see tar-fs173 35 .
  • decompress130 21 - Decompression module with support for tar, tar.gz and zip files out of the box.

Network

  • get-port135 13 - Get an available port.
  • ipify124 5 - Get your public IP address.
  • getmac112 35 - Get the computer MAC address.
  • polo193 28 - Zero-config service discovery.
  • DHCP20 2 - DHCP client and server.

Database

  • Drivers
    • PostgreSQL9k 1k - PostgreSQL client. Pure JavaScript and native libpq bindings.
    • Redis4k 396 - Redis client.
    • LevelUP2k 164 - LevelDB.
    • MySQL4k 710 - MySQL client.
    • nano1k 199 - CouchDB client.
    • Aerospike153 81 - Aerospike client.
    • Couchbase391 188 - Couchbase client.
    • MongoDB7k 2k - MongoDB driver.
  • ODM / ORM
    • Sequelize14k 3k - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL.
    • Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
    • Massive2k 160 - PostgreSQL data access tool.
    • Mongoose - Elegant MongoDB object modeling.
    • Waterline5k 625 - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
    • Iridium438 29 - MongoDB ORM with support for promises, distributed caching, preprocessing, validation and plugins.
    • OpenRecord116 14 - ORM for PostgreSQL, MySQL, SQLite3 and RESTful datastores. Similar to ActiveRecord.
    • orm23k 436 - ORM for PostgreSQL, MariaDB, MySQL, Amazon Redshift, SQLite, MongoDB.
    • firenze139 9 - Adapter-based ORM for MySQL, Memory, Redis, localStorage and more.
    • pg-promise2k 151 - PostgreSQL framework for native SQL using promises.
    • Objection.js1k 145 - Lightweight ORM built on the SQL query builder Knex.
  • Query builder
    • Knex - Query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.
  • Other
    • NeDB7k 509 - Embedded persistent database written in JavaScript.
    • Lowdb7k 346 - Small JavaScript database powered by Lodash.
    • Keyv424 17 - Simple key-value storage with support for multiple backends.

Testing

  • AVA - Futuristic test runner.
  • Mocha - Feature-rich test framework making asynchronous testing simple and fun.
  • nyc661 41 - Code coverage tool built on istanbul that works with subprocesses.
  • tap652 89 - TAP test framework.
  • tape4k 281 - TAP-producing test harness.
  • power-assert1k 36 - Provides descriptive assertion messages through the standard assert interface.
  • Mochify327 64 - TDD with Browserify, Mocha, PhantomJS and WebDriver.
  • trevor629 28 - Run tests against multiple versions of Node.js without switching versions manually or pushing to Travis CI.
  • loadtest220 25 - Run load tests for your web application, with an API for automation.
  • Sinon.JS3k 364 - Test spies, stubs and mocks.
  • navit43 14 - PhantomJS / SlimerJS wrapper to simplify browser test scripting.
  • nock3k 285 - HTTP mocking and expectations.
  • intern4k 354 - Code testing stack.
  • toxy3k 90 - Hackable HTTP proxy to simulate failure scenarios and network conditions.
  • hook-std20 4 - Hook and modify stdout/stderr.
  • testen160 4 - Run tests for multiple versions of Node.js locally with NVM.
  • Nightwatch4k 493 - Automated UI testing framework based on Selenium WebDriver.
  • WebdriverIO - Automated testing based on the WebDriver protocol.
  • Jest16k 3k - Painless JavaScript testing.
  • TestCafe4k 229 - Automated browser testing.
  • abstruse95 16 - Continuous Integration server.

Security

  • snyk444 36 - CLI and build-time tool to find & fix vulnerable npm dependencies.
  • nsp1k 120 - CLI tool to identify known vulnerabilities in your project.
  • RegEx-DoS - CLI tool to identify possible regex denial of service (ReDos) vulnerabilities in your project.
  • credential-plus1 1 - Password hashing and verification made easy.

Benchmarking

  • Benchmark.js - Benchmarking library that supports high-resolution timers and returns statistically significant results.
  • matcha467 30 - Simplistic approach to benchmarking.

Minifiers

Authentication

  • Passport - Simple, unobtrusive authentication.
  • everyauth3k 432 - Authentication and authorization (password, Facebook, etc) for your Connect and Express apps.
  • passwordless - Token-based authentication middleware for Express allowing authentication without passwords.
  • Lockit468 66 - Full featured authentication solution for Express. Supports a variety of databases, predefined routes, email and two-factor authentication.
  • Grant1k 95 - OAuth middleware for Express, Koa, and Hapi.
  • CloudRail267 29 - Unified API for social authentication (Facebook, Twitter, Slack, Instagram, …).

Email

  • Nodemailer5k 546 - The fastest way to handle email.
  • emailjs831 95 - Send text/HTML emails with attachments to any SMTP server.
  • email-templates182 19 - Create, preview, and send custom email templates.

Job queues

  • kue4k 445 - Priority job queue backed by Redis.
  • bull2k 356 - Persistent job and message queue.
  • agenda3k 406 - Lightweight job scheduling on MongoDB.
  • idoit3 3 - Redis-backed job queue engine with advanced job control.
  • node-resque768 180 - Redis-backed job queue.

Node.js management

  • n8k 542 - Node.js version management.
  • nave1k 99 - Virtual Environments for Node.js.
  • nodeenv769 107 - Node.js virtual environment compatible to Python's virtualenv.
  • nvm for Windows4k 423 - Version management for Windows.

Polyfills

  • Node.js
    • user-info36 1 - Node.js 6 os.userInfo() ponyfill.
    • buffer-includes - Node.js 5.3 buffer.includes() ponyfill.
    • deep-strict-equal24 2 - Test for deep equality - Node.js assert.deepStrictEqual() algorithm as a standalone module.
  • JavaScript

Natural language processing

  • retext1k 78 - An extensible natural language system.
  • franc2k 127 - Detect the language of text.
  • leven277 15 - Measure the difference between two strings using the Levenshtein distance algorithm.
  • natural7k 714 - Natural language facility.

Process management

  • PM219k 2k - Advanced Process Manager.
  • nodemon12k 978 - Monitor for changes in your app and automatically restart the server.
  • node-mac245 15 - Run scripts as a native Mac daemon and log to the console app.
  • node-linux322 49 - Run scripts as native system service and log to syslog.
  • node-windows1k 188 - Run scripts as a native Windows service and log to the Event viewer.
  • forever10k 857 - Ensures that a given script runs continuously.
  • supervisor945 87 - Restart scripts when they crash or restart when a *.js file changes.
  • Phusion Passenger - Friendly process manager that integrates directly into Nginx.
  • naught713 58 - Process manager with zero downtime deployment.

Automation

  • robotjs6k 347 - Desktop Automation: control the mouse, keyboard and read the screen.

AST

  • Acorn2k 202 - Tiny, fast JavaScript parser.
  • Rocambole145 14 - Recursively walk and transform JavaScript AST.

Static site generators

  • Metalsmith - Pluggable static site generator.
  • Wintersmith - Flexible, minimalistic, multi-platform static site generator.
  • Assemble - Static site generator for Node.js, Grunt.js, and Yeoman.
  • DocPad3k 294 - Static site generator with dynamic abilities and huge plugin ecosystem.
  • Phenomic - Modern static website generator based on the React and Webpack ecosystem.
  • docsify - Markdown documentation site generator with no statically built HTML files.

Content management systems

  • KeystoneJS - CMS and web application platform built on Express and MongoDB.
  • Apostrophe2 - Content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB.

Forum

  • nodeBB - Forum platform for the modern web.

Blogging

  • ghost - Simple, powerful publishing platform.
  • Hexo - Fast, simple and powerful blogging framework.

Weird

  • cows172 26 - ASCII cows.
  • superb240 39 - Get superb like words.
  • cat-names182 29 - Get popular cat names.
  • dog-names71 6 - Get popular dog names.
  • superheroes123 13 - Get superhero names.
  • supervillains65 6 - Get supervillain names.
  • cool-ascii-faces924 56 - Get some cool ascii faces.
  • cat-ascii-faces164 12 - ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”
  • nerds - Get data from nerdy topics like Harry Potter, Star Wars, and Pokémon.

Miscellaneous

  • execa913 48 - Better child_process.
  • cheerio16k 1k - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
  • Electron22k 3k - Build cross platform desktop apps with web technologies. (You might like awesome-electron12k 1k )
  • opn574 39 - Opens stuff like websites, files, executables.
  • hasha549 26 - Hashing made simple. Get the hash of a buffer/string/stream/file.
  • dot-prop175 28 - Get a property from a nested object using a dot path.
  • onetime68 5 - Only run a function once.
  • mem301 14 - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.
  • import-fresh - Import a module while bypassing the cache.
  • strip-bom50 12 - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
  • os-locale168 44 - Get the system locale.
  • nan1k 283 - Makes native add-on development for across Node.js versions easier.
  • ssh23k 312 - SSH2 client and server module.
  • adit11 1 - SSH tunneling made simple.
  • import-lazy42 3 - Import a module lazily.
  • file-type584 115 - Detect the file type of a Buffer.
  • Bottleneck294 19 - Rate limiter that makes throttling easy.
  • webworker-threads1k 118 - Lightweight Web Worker API implementation with native threads.
  • clipboardy289 19 - Access the system clipboard (copy/paste).
  • node-pre-gyp448 130 - Makes it easy to publish and install Node.js C++ addons from binaries.
  • opencv3k 639 - Bindings for OpenCV. The defacto computer vision library.
  • dotenv4k 226 - Load environment variables from .env file.
  • remote-git-tags14 0 - Get tags from a remote git repo.
  • semver2k 230 - semver parser.
  • Faker.js3k 227 - Generate massive amounts of fake data.
  • nodegit3k 519 - Native bindings to Git.
  • json-strictify - Safely serialize a value to JSON without data loss or going into an infinite loop.
  • parent-module14 1 - Get the path of the parent module.
  • resolve-from34 7 - Resolve the path of a module like require.resolve() but from a given path.
  • simplecrawler2k 352 - Event driven web crawler.
  • jsdom9k 1k - JavaScript implementation of HTML and the DOM.
  • hypernova4k 157 - Server-side rendering your JavaScript views.

Resources

Tutorials

  • Nodeschool - Learn Node.js with interactive lessons.
  • The Art of Node7k 701 - An introduction to Node.js.
  • stream-handbook5k 285 - How to write Node.js programs with streams.
  • browserify-handbook4k 326 - The definitive guide for browserify.
  • module-best-practices935 47 - Some good practices when writing new npm modules.
  • The Node Way - An entire philosophy of Node.js best practices and guiding principles exists for writing maintainable modules, scalable applications, and code that is actually pleasant to read.
  • You Don't Know Node.js631 72 - Introduction to Node.js core features and asynchronous JavaScript.

Discovery

Articles

Newsletters

  • node weekly - Weekly e-mail round-up of Node.js news and articles.
  • nmotw - Node Module Of The Week, weekly dose of hand picked node modules.

Videos

Podcasts

Books

Blogs

  • Node.js blog
  • HowToNode - Teaching how to do various tasks in Node.js as well as teach fundamental concepts that are needed to write effective code.
  • webapplog.com - Blog posts on Node.js and JavaScript from the author of Practical Node.js and Pro Express.js Azat Mardan.

Courses

Cheatsheets

  • Express.js73 7
  • Stream FAQs154 4 - Answering common questions about streams, covering pagination, events, and more.

Tools

  • OctoLinker - Chrome extension that linkifies dependencies in package.json, .js, .jsx, .coffee and .md files on GitHub.
  • npm-hub - Chrome extension to display npm dependencies at the bottom of a repo's readme.
  • RunKit - Embed a Node.js environment on any website.
  • RequireBin - Shareable JavaScript programs powered by npm and browserify.
  • github-npm-stats - Chrome extension that displays npm download stats on GitHub.

Community

Miscellaneous

License

CC0

To the extent possible under law, Sindre Sorhus has waived all copyright and related or neighboring rights to this work.