Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-nodejs

Delightful Node.js packages and resources. Crawl and sort daily by AwesomelsBot
https://github.com/thoqbk/awesome-nodejs

Last synced: 3 days ago
JSON representation

  • Functional programming

    • immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity. - ★ 25610
    • ramda - Practical functional Javascript - ★ 14475
    • lazy.js - Like Underscore, but lazier - ★ 5401
    • kefir - A Reactive Programming library for JavaScript - ★ 1489
    • mout - Modular JavaScript Utilities - ★ 1037
  • HTTP

    • superagent - Ajax with less suck - (and node.js HTTP client to match) - ★ 13523
    • axios - Promise based HTTP client for the browser and node.js - ★ 50970
    • request - 🏊🏾 Simplified HTTP request client. - ★ 21094
    • got - Simplified HTTP requests - ★ 4412
    • download - Download and extract files - ★ 768
    • wreck - HTTP Client Utilities - ★ 325
    • http-fake-backend - Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes. - ★ 171
    • gotql - GraphQL query utility for serverside apps - ★ 166
    • cacheable-request - Wrap native HTTP requests with RFC compliant cache support - ★ 152
    • gh-got - Convenience wrapper for `got` to interact with the GitHub API - ★ 125
    • flashheart - A fully-featured Node.js REST client built for ease-of-use and resilience - ★ 88
    • node-http-proxy - A full-featured http proxy for node.js - ★ 9453
    • node-fetch - A light-weight module that brings window.fetch to Node.js - ★ 3573
  • Debugging / Profiling

    • node-vstream - instrumented streams - ★ 54
    • node-inspector - Node.js debugger based on Blink Developer Tools - ★ 12295
    • ndb - ndb is an improved debugging experience for Node.js, enabled by Chrome DevTools - ★ 8436
    • debug - A tiny JavaScript debugging utility modelled after Node.js core's debugging technique. Works in Node.js and web browsers - ★ 6923
    • leakage - Memory leak testing for node. - ★ 1300
    • 0x - single-command flamegraph profiling - ★ 1153
    • why-is-node-running - Node is running but you don't know why? why-is-node-running is here to help you. - ★ 818
    • llnode - An lldb plugin for Node.js and V8, which enables inspection of JavaScript states for insights into Node.js processes and their core dumps. - ★ 592
    • locus - Locus is a debugging module for node.js - ★ 255
    • njsTrace - A Node.js tracing and instrumentation utility - ★ 231
    • ctrace - Well-formatted and improved trace system calls and signals (when the debugger does not help) - ★ 99
    • iron-node - Debug Node.js code with Chrome Developer Tools. - ★ 2371
    • stackman - He is like Batman, but for Node.js stack traces - ★ 173
  • Hardware

    • GPS.js - A NMEA parser and GPS utility library - ★ 72
    • johnny-five - JavaScript Robotics and IoT programming framework, developed at Bocoup. - ★ 9896
    • onoff - GPIO access and interrupt detection with Node.js - ★ 741
    • pigpio - Fast GPIO, PWM, servo control, state change notification and interrupt handling with Node.js on the Raspberry Pi - ★ 383
    • i2c-bus - I2C serial bus access with Node.js - ★ 148
    • GPS.js - A NMEA parser and GPS utility library - ★ 72
    • spi-device - SPI serial bus access with Node.js - ★ 42
    • node-serialport - Node.js package to access serial ports. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them! - ★ 3651
    • node-usb - Improved USB library for Node.js - ★ 727
  • Testing

    • tape - tap-producing test harness for node and browsers - ★ 4802
    • nightwatch - Automated testing and continuous integration framework based on Node.js and using the Webdriver protocol - ★ 8715
    • sinon - Test spies, stubs and mocks for JavaScript. - ★ 6587
    • testcafe - A Node.js tool to automate end-to-end web testing. - ★ 5679
    • webdriverio - Next-gen WebDriver test automation framework for Node.js - ★ 4384
    • toxy - Hackable HTTP proxy for resiliency testing and simulated network conditions - ★ 2534
    • power-assert - Power Assert in JavaScript. Provides descriptive assertion messages through standard assert interface. No API is the best API. - ★ 2167
    • loadtest - Runs a load test on the selected URL. Easy to extend minimally for your own ends. - ★ 1421
    • navit - Simple client testing from your scripts - ★ 44
    • nock - HTTP server mocking and expectations library for Node.js - ★ 7137
    • trevor - Your own mini Travis CI to run tests locally - ★ 2085
    • intern - A next-generation code testing stack for JavaScript. - ★ 4064
    • abstruse - Continuous Integration platform built with Node.js and Docker. - ★ 387
    • mochify.js - TDD with Browserify, Mocha, Headless Chrome and WebDriver - ★ 317
    • testen - Run tests for multiple versions of Node.js in local env. - ★ 163
    • hook-std - Hook and modify stdout/stderr - ★ 35
    • jest - Delightful JavaScript Testing. - ★ 21588
  • Minifiers

    • UglifyJS2 - JavaScript parser / mangler / compressor / beautifier toolkit - ★ 9468
    • minimize - Minimize HTML - ★ 139
    • minify - An ES6+ aware minifier based on the Babel toolchain (beta) - ★ 3613
    • imagemin - Tense, nervous, minifying images? - ★ 2584
  • Mad science

    • brain.js - Neural networks in JavaScript - ★ 6413
    • peerflix - Streaming torrent client for node.js - ★ 4955
    • turf - A modular geospatial engine written in JavaScript - ★ 3987
    • isomorphic-git - A pure JavaScript implementation of git for node and browsers! - ★ 3447
    • bitcoinjs-lib - A javascript Bitcoin library for node.js and browsers. - ★ 3125
    • js-ipfs - IPFS implementation in JavaScript - ★ 3099
    • bitcore - A full stack for bitcoin and blockchain-based applications - ★ 2942
    • peercast - torrent-stream + chromecast - ★ 401
    • peerwiki - all of wikipedia on bittorrent - ★ 285
    • webtorrent - Streaming torrent client for the web - ★ 18079
    • js-xlsx - SheetJS Community Edition -- Spreadsheet Parser and Writer - ★ 13094
    • pdfkit - A JavaScript PDF generation library for Node and the browser - ★ 4336
    • skale - High performance distributed data processing engine - ★ 305
    • zapsnap - Temporary peer to peer screenshot sharing from your browser. - ★ 176
    • NodeOS - Lightweight operating system using Node.js as userspace - ★ 5701
    • cytoscape.js - Graph theory (network) library for visualisation and analysis - ★ 4860
    • js-git - A JavaScript implementation of Git. - ★ 3446
    • webcat - Mad science p2p pipe across the web using webrtc that uses your Github private/public key for authentication and a signalhub for discovery - ★ 381
  • Command-line apps

    • standard - JavaScript Style Guide, with linter & automatic code fixer - ★ 19655
    • pageres - Capture website screenshots - ★ 8453
    • localtunnel - expose yourself - ★ 7593
    • cash - Cross-platform Linux commands in ES6 - ★ 7567
    • gtop - System monitoring dashboard for terminal - ★ 7074
    • fkill-cli - Fabulously kill processes. Cross-platform. - ★ 5420
    • xo - JavaScript happiness style linter - ★ 4139
    • np - A better `npm publish` - ★ 3490
    • carbon-now-cli - Beautiful images of your code — from right inside your terminal. - ★ 3425
    • speed-test - Test your internet connection speed and ping using speedtest.net from the CLI - ★ 3034
    • vtop - Wow such top. So stats. More better than regular top. - ★ 3011
    • live-server - A simple development http server with live reload capability. - ★ 2422
    • cost-of-modules - Find out which of your dependencies are slowing you down - ★ 2263
    • trash - Move files and directories to the trash - ★ 1634
    • emoj - Find relevant emoji from text on the command-line - ★ 1557
    • auto-install - Install dependencies as you code - ★ 958
    • svg-term-cli - Share terminal sessions via SVG and CSS - ★ 884
    • jscpd - Copy/paste detector for programming source code. - ★ 855
    • david - Node.js module that tells you when your package npm dependencies are out of date. - ★ 846
    • license-checker - Check NPM package licenses - ★ 741
    • atmo - Mock data for your prototypes and demos. Remote deployments to Zeit now. - ★ 726
    • is-online - Check if the internet connection is up - ★ 435
    • dark-mode - Control the macOS dark mode from the command-line - ★ 380
    • pjs - Pipeable javascript. Quickly filter, map, and reduce from the terminal - ★ 345
    • itunes-remote - Control iTunes via CLI - ★ 345
    • public-ip - Get your public IP address - very fast! - ★ 341
    • browser-run - The easiest way of running code in a browser environment - ★ 324
    • is-up - Check whether a website is up or down - ★ 297
    • discharge - A simple, easy way to deploy static websites to Amazon S3. - ★ 294
    • node-bcat - A pipe to browser utility - ★ 275
    • clipboard-cli - Access the system clipboard (copy/paste) - ★ 231
    • kill-tabs - Kill all Chrome tabs to improve performance, decrease battery usage, and save memory - ★ 231
    • normit - Translations with speech synthesis in your terminal as a node package - ★ 193
    • dev-time-cli - Get the current local time of a GitHub user. - ★ 156
    • diff2html-cli - Simple CLI for diff2html library - ★ 154
    • wifi-password-cli - Get current wifi password - ★ 141
    • Jsome - Make your JSON look AWESOME - ★ 139
    • npm-home - Open the npm page, Yarn page, or GitHub repo of a package - ★ 135
    • brightness-cli - Change the screen brightness - ★ 130
    • tmpin - Add stdin support to any CLI app that accepts file input - ★ 109
    • subdownloader - Painless subtitle downloader - ★ 99
    • gh-home - Open the GitHub page of the given or current directory repo - ★ 98
    • empty-trash - Empty the trash - ★ 90
    • npm-name - Check whether a package name is available on npm - ★ 81
    • cash-cli - Convert Currency Rates using your terminal! - ★ 66
    • mobicon-cli - Mobile icon generator - ★ 57
    • mobisplash-cli - Mobile app splash screen generator - ★ 32
    • lessmd - Minimal marked based unix terminal document viewer/pager with many features like markdown to terminal translation, file change watching and more. - ★ 93
    • taskbook - Tasks, boards & notes for the command-line habitat - ★ 5204
    • alex - Catch insensitive, inconsiderate writing - ★ 2798
    • themer - themer takes a set of colors and generates themes for your apps (editors, terminals, wallpapers, and more). - ★ 1704
    • trymodule - It's never been easier to try nodejs modules! - ★ 1021
    • torrent - download torrents with node from the CLI - ★ 523
    • pen - We need a better Markdown previewer. - ★ 256
    • wallpaper - Manage the desktop wallpaper - ★ 552
    • iponmap - commandline IP location finder - ★ 175
  • Logging

    • winston - A logger for just about everything. - ★ 11879
    • pino - super fast, all natural json logger - ★ 3262
    • storyboard - End-to-end, hierarchical, real-time, colorful logs and stories - ★ 506
    • console-log-level - The most simple logger imaginable - ★ 30
    • signale - Hackable console logger - ★ 6756
  • Command-line utilities

    • chalk - Terminal string styling done right - ★ 10582
    • Inquirer.js - A collection of common interactive command line user interfaces. - ★ 8564
    • blessed - A high-level terminal interface library for node.js. - ★ 7846
    • ink - React for interactive command-line apps - ★ 6445
    • yargs - yargs the modern, pirate-themed successor to optimist. - ★ 5397
    • bit - Easily share code between projects with your team. - ★ 4579
    • ora - Elegant terminal spinner - ★ 3972
    • oclif - Node.js Open CLI Framework. Built with by Heroku. - ★ 2767
    • meow - CLI app helper - ★ 1552
    • update-notifier - Update notifications for your CLI app - ★ 1086
    • node-drawille - Drawing in terminal with unicode braille characters - ★ 763
    • log-update - Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc. - ★ 523
    • insight - Node.js module to help you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics - ★ 437
    • boxen - Create boxes in the terminal - ★ 421
    • cfonts - Sexy fonts for the console - ★ 361
    • terminal-image - Display images in the terminal - ★ 356
    • conf - Simple config handling for your app or module - ★ 318
    • columnify - Create text-based columns suitable for console output. Supports cell wrapping. - ★ 315
    • gradient-string - Beautiful color gradients in terminal output - ★ 315
    • sparkly - Generate sparklines ▁▂▃▅▂▇ - ★ 279
    • node-multispinner - Multiple, simultaneous, individually controllable spinners for concurrent tasks in Node.js CLI programs - ★ 226
    • chart - Ansi charts for nodejs - ★ 221
    • loud-rejection - Make unhandled promise rejections fail loudly instead of the default silent fail - ★ 220
    • ansi-escapes - ANSI escape codes for manipulating the terminal - ★ 219
    • get-stdin - Get stdin as a string or buffer - ★ 186
    • cliffy - NodeJS Framework for Interactive CLIs - ★ 161
    • terminal-link - Create clickable links in the terminal - ★ 130
    • yn - Parse yes/no like values - ★ 120
    • string-width - Get the visual width of a string - the number of columns required to display it - ★ 108
    • sudo-block - Block users from running your app with root permissions - ★ 63
    • first-run - Check if it's the first time the process is run - ★ 54
    • cli-cursor - Toggle the CLI cursor - ★ 50
    • cli-truncate - Truncate a string to a specific width in the terminal - ★ 32
    • cli-table3 - Pretty unicode tables for the command line - ★ 18
    • cli-columns - Columnated lists for the CLI. Unicode and ANSI safe. - ★ 14
    • cross-env - Cross platform setting of environment scripts - ★ 3137
    • log-symbols - Colored symbols for various log levels - ★ 361
    • shelljs - Portable Unix shell commands for Node.js - ★ 8718
    • figures - Unicode symbols with Windows CMD fallbacks - ★ 296
    • node-progress - Flexible ascii progress bar for nodejs - ★ 2013
    • term-size - Reliably get the terminal window size - ★ 76
    • listr - Terminal task list - ★ 1830
    • omelette - Omelette is a simple, template based autocompletion tool for Node projects with super easy API. (For Bash, Zsh and Fish) - ★ 771
  • Build tools

    • parcel - Blazing fast, zero configuration web application bundler - ★ 27943
    • rollup - Next-generation ES module bundler - ★ 14090
    • brunch - Fast front-end web app build tool with simple declarative config, seamless incremental compilation for rapid development, an opinionated pipeline and workflow, and core support for source maps. - ★ 6530
    • fuse-box - A blazing fast js bundler/loader with a comprehensive API - ★ 3554
    • broccoli - Browser compilation library – an asset pipeline for applications that run in the browser - ★ 3150
    • start - Functional task runner for Node.js - ★ 445
    • ygor - Task toolkit. For when `npm run` isn't enough and everything else is too much. - ★ 58
    • webpack - A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders," modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff. - ★ 45168
  • Templating

    • pug - Pug – robust, elegant, feature rich template engine for Node.js - ★ 17464
    • marko - A friendly (and fast!) UI library from eBay that makes building web apps fun - ★ 7598
    • nunjucks - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired) - ★ 5631
    • ejs - Embedded JavaScript templates -- - ★ 2953
    • handlebars.js - ★ 13883
  • Web frameworks

    • next.js - The React Framework - ★ 31425
    • nest - A progressive Node.js framework for building efficient and scalable server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) heavily inspired by Angular - ★ 10043
    • fastify - Fast and low overhead web framework, for Node.js - ★ 8628
    • thinkjs - Use full ES2015+ features to develop Node.js applications, Support TypeScript. - ★ 4622
    • seneca - A microservices toolkit for Node.js. - ★ 3189
    • hemera - Writing reliable & fault-tolerant microservices in Node.js - ★ 591
    • zeronode - Zeronode - minimal building block for NodeJS microservices - ★ 69
    • actionhero - actionhero.js is a multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks - ★ 1926
    • awesome-meteor - A curated, community driven list of awesome Meteor packages, libraries, resources and shiny things - ★ 1287
    • nuxt.js - The Vue.js Developers Framework - ★ 16228
    • micro - Asynchronous HTTP microservices - ★ 7611
    • type-graphql - Create GraphQL schema and resolvers with TypeScript, using classes and decorators! - ★ 796
  • Documentation

    • documentation - documentation for modern JavaScript - ★ 4132
    • esdoc - ESDoc - Good Documentation for JavaScript - ★ 2240
  • Filesystem

    • del - Delete files and directories - ★ 876
    • globby - User-friendly glob matching - ★ 758
    • fs-jetpack - Better file system API for Node.js - ★ 431
    • filenamify - Convert a string to a valid safe filename - ★ 183
    • find-up - Find a file or directory by walking up parent directories - ★ 174
    • filehound - Flexible and fluent interface for searching the file system - ★ 131
    • load-json-file - Read and parse a JSON file - ★ 122
    • write-json-file - Stringify and write JSON to a file atomically - ★ 109
    • move-file - Move a file - Even works across devices - ★ 103
    • pkg-dir - Find the root directory of a Node.js project or npm package - ★ 78
    • istextorbinary - Determines if a buffer is comprised of text or binary - ★ 45
    • fs-write-stream-atomic - Like `fs.createWriteStream(...)`, but atomic. - ★ 43
    • lnfs - Safely force create symlinks - ★ 9
    • node-fs-extra - Node.js: extra methods for the fs object like copy(), remove(), mkdirs() - ★ 4963
    • chokidar - A neat wrapper around node.js fs.watch / fs.watchFile / fsevents. - ★ 4708
    • rimraf - A `rm -rf` util for nodejs - ★ 2829
    • node-graceful-fs - fs with incremental backoff on EMFILE - ★ 788
    • make-dir - Make a directory and its parents if needed - Think `mkdir -p` - ★ 323
    • node-proper-lockfile - An inter-process and inter-machine lockfile utility that works on a local or network file system. - ★ 57
    • cpy - Copy files - ★ 189
  • Control flow

    • async - Async utilities for node and the browser - ★ 24879
    • bluebird - Bluebird is a full featured promise library with unmatched performance. - ★ 17527
    • rxjs - A reactive programming library for JavaScript - ★ 15738
    • highland - High-level streams library for Node.js and the browser - ★ 3036
    • promise-fun - Promise packages, patterns, chat, and tutorials - ★ 2045
    • pify - Promisify a callback-style function - ★ 1062
    • zen-observable - An Implementation of Observables for Javascript - ★ 457
    • p-map - Map over promises concurrently - ★ 310
    • delay - Delay a promise a specified amount of time - ★ 276
    • awesome-observables - Awesome Observable related stuff - An Observable is a collection that arrives over time. - ★ 239
    • each-async - Async concurrent iterator (async forEach) - ★ 104
    • promise-memoize - Memoize promise-returning functions. Includes cache expire and prefetch. - ★ 37
    • valvelet - Limit the execution rate of a function - ★ 18
  • Streams

    • through2 - Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise - ★ 1453
    • readable-stream - Node-core streams for userland - ★ 667
    • node-byline - Line-by-line Stream reader for node.js - ★ 264
    • pumpify - Combine an array of streams into a single duplex stream using pump and duplexify - ★ 147
    • multistream - A stream that emits multiple other streams one after another (streams2) - ★ 146
    • get-stream - Get a stream as a string, buffer, or array - ★ 131
    • from2 - Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2" - ★ 98
    • into-stream - Convert a string/promise/array/iterable/buffer/typedarray/arraybuffer/object into a stream - ★ 76
    • through2-concurrent - Simple Node.JS stream (streams2) Transform that runs the transform functions concurrently (with a set max concurrency) - ★ 60
    • peek-stream - Transform stream that lets you peek the first line before deciding how to parse it - ★ 42
    • first-chunk-stream - Transform the first chunk in a stream - ★ 19
    • pad-stream - Pad each line in a stream - ★ 5
    • stream-combiner2 - ★ 71
    • binary-split - a fast newline (or any delimiter) splitter stream - like require('split') but specific for binary data - ★ 61
    • duplexify - Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input - ★ 138
  • Real-time

    • socket.io - Realtime application framework (Node.JS server) - ★ 44232
    • socketcluster - Highly scalable realtime framework - ★ 4977
    • faye - Simple pub/sub messaging for the web - ★ 4152
    • primus - Primus, the creator god of the transformers & an abstraction layer for real-time to prevent module lock-in. - ★ 3728
    • MQTT.js - The MQTT client for Node.js and the browser - ★ 3722
    • deepstream.io-client-js - The Browser / Node.js Client for deepstream.io - ★ 223
    • rpc-websockets - JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript - ★ 131
    • kalm.js - The socket manager - ★ 63
    • uWebSockets - Tiny WebSockets - ★ 9753
  • Image

    • sharp - High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP and TIFF images. Uses the libvips library. - ★ 9778
    • gm - GraphicsMagick for node - ★ 5338
    • lwip - Light Weight Image Processor for NodeJS - ★ 2157
    • pica - Resize image in browser with high quality and high speed - ★ 1419
    • probe-image-size - Get image size without full download. Supported image types: JPG, GIF, PNG, WebP, BMP, TIFF, SVG, PSD. - ★ 202
    • image-type - Detect the image type of a Buffer/Uint8Array - ★ 152
    • jimp - An image processing library written entirely in JavaScript for Node, with zero external or native dependencies. - ★ 7145
  • Text

    • i18next - i18next: learn once - translate everywhere - ★ 3683
    • iconv-lite - Convert character encodings in pure javascript. - ★ 1848
    • he - A robust HTML entity encoder/decoder written in JavaScript. - ★ 1738
    • matcher - Simple wildcard matching - ★ 411
    • escape-string-regexp - Escape RegExp special characters - ★ 270
    • camelcase - Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar - ★ 260
    • babelfish - human friendly i18n for javascript (node.js + browser) - ★ 194
    • detect-indent - Detect the indentation of code - ★ 120
    • strip-indent - Strip leading whitespace from each line in a string - ★ 77
    • execall - Find multiple RegExp matches in a string - ★ 74
    • string-length - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes - ★ 58
    • indent-string - Indent each line in a string - ★ 57
    • splice-string - Remove or replace part of a string like Array#splice - ★ 13
    • unhomoglyph - Replace all homoglyphs with base characters. Useful to detect similar strings. - ★ 13
    • i18n-node - Lightweight simple translation module for node.js / express.js with dynamic json storage. Uses common __('...') syntax in app and templates. - ★ 2206
  • Number

    • round-to - Round a number to a specific number of decimal places: 1.234 → 1.2 - ★ 91
    • unique-random - Generate random numbers that are consecutively unique - ★ 61
    • random-int - Generate a random integer - ★ 40
    • random-float - Generate a random float - ★ 18
  • Math

    • mathjs - An extensive math library for JavaScript and Node.js - ★ 7647
    • ndarray - Multidimensional arrays for JavaScript - ★ 805
    • algebra - means completeness and balancing, from the Arabic word الجبر - ★ 66
    • multimath - WebAssembly wrapper to simplify fast math coding - ★ 31
    • math-clamp - Clamp a number - ★ 4
  • Date

    • date-fns - Modern JavaScript date utility library - ★ 14943
    • luxon - A library for working with dates and times in JS - ★ 7204
    • node-dateformat - A node.js package for Steven Levithan's excellent dateFormat() function. - ★ 914
    • node-cctz - Fast parsing, formatting and timezone manipulations for dates - ★ 55
    • tz-format - Format a date with timezone - ★ 5
  • URL

    • speakingurl - Generate a slug – transliteration with a lot of options - ★ 967
    • url-pattern - easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings. - ★ 396
    • normalize-url - Normalize a URL - ★ 308
    • linkify-it - Links recognition library with full unicode support - ★ 248
    • humanize-url - Humanize a URL: → sindresorhus.com - ★ 171
    • embedza - Create HTML snippets/embeds from URLs using info from oEmbed, Open Graph, meta tags. - ★ 37
    • url-unshort - Short links expander for node.js - ★ 33
  • Data validation

    • joi - Object schema validation - ★ 9795
    • is-my-json-valid - A JSONSchema validator that uses code generation to be extremely fast - ★ 841
    • property-validator - Easy property validation for JavaScript, Node and Express. - ★ 142
    • ajv - The fastest JSON Schema Validator. Supports draft-04/06/07 - ★ 4529
  • Parsing

    • postcss - Transforming styles with JS plugins - ★ 19653
    • markdown-it - Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed - ★ 6295
    • URI.js - Javascript URL mutation library - ★ 5513
    • node-xml2js - XML to JavaScript object converter. - ★ 3436
    • js-yaml - JavaScript YAML parser and dumper. Very fast. - ★ 3372
    • jison - Bison in JavaScript. - ★ 3203
    • pegjs - PEG.js: Parser generator for JavaScript - ★ 3007
    • parse5 - HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant. - ★ 1909
    • JSONStream - rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects) - ★ 1592
    • csv-parser - Streaming csv parser inspired by binary-csv that aims to be faster than everyone else - ★ 566
    • strip-json-comments - Strip comments from JSON. Lets you use comments in your JSON files! - ★ 381
    • ref - Turn Buffer instances into "pointers" - ★ 299
    • fast-xml-parser - Validate XML, Parse XML to JS/JSON and vise versa, or parse XML to Nimn rapidly without C/C++ based libraries and no callback - ★ 295
    • xlsx-populate - Excel XLSX parser/generator written in JavaScript with Node.js and browser support, jQuery/d3-style method chaining, encryption, and a focus on keeping existing workbook features and styles in tact. - ★ 275
    • binary-extract - Extract a value from a buffer of json without parsing the whole thing - ★ 139
    • parse-json - Parse JSON with more helpful errors - ★ 131
    • stylecow - Modern CSS to all browsers - ★ 128
    • strip-css-comments - Strip comments from CSS - ★ 83
    • neat-csv - Fast CSV parser - ★ 75
    • x-ray - The next web scraper. See through the <html> noise. - ★ 4727
    • nearley - Simple, fast, powerful parser toolkit for JavaScript. - ★ 1987
    • chevrotain - Parser Building Toolkit for JavaScript - ★ 883
  • Humanize

    • pretty-error - See node.js errors with less clutter - ★ 1190
    • pretty-bytes - Convert bytes to a human readable string: 1337 → 1.34 kB - ★ 412
    • pretty-ms - Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s` - ★ 347
    • node-readability - Scrape/Crawl article from any site automatically. Make any web page readable, no matter Chinese or English. - ★ 271
  • Compression

    • pako - high speed zlib port to javascript, works in browser & node.js - ★ 1911
    • node-archiver - a streaming interface for archive generation - ★ 1395
    • yauzl - yet another unzip library for node - ★ 342
    • decompress - Extracting archives made easy - ★ 249
    • tar-stream - tar-stream is a streaming tar parser and generator. - ★ 229
    • tar-fs - fs bindings for tar-stream - ★ 224
    • yazl - yet another zip library for node - ★ 162
  • Network

    • get-port - Get an available port - ★ 281
    • netcat - Netcat client and server modules written in pure Javascript for Node.js. - ★ 217
    • getmac - Get the mac address of the current machine you are on via Node.js - ★ 160
    • ipify - Get your public IP address - ★ 148
    • node-dhcp - A DHCP server and client written in pure JavaScript - ★ 129
  • Database

    • mongoose - MongoDB object modeling designed to work in an asynchronous environment. - ★ 17340
    • sequelize - An easy-to-use multi SQL dialect ORM for Node.js - ★ 16506
    • mysql - A pure node.js JavaScript Client implementing the MySql protocol. - ★ 13069
    • typeorm - ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms. - ★ 9151
    • lowdb - lowdb is a small local JSON database powered by Lodash (supports Node, Electron and the browser) - ★ 9075
    • nedb - The JavaScript Database, for Node.js, nw.js, electron and the browser - ★ 9038
    • node-mongodb-native - Mongo DB Native NodeJS Driver - ★ 7429
    • node-postgres - PostgreSQL client for node.js. - ★ 6690
    • bookshelf - A simple Node.js ORM for PostgreSQL, MySQL and SQLite3 built on top of Knex.js - ★ 5224
    • waterline - An adapter-based ORM for Node.js with support for mysql, mongo, postgres, nedb, redis, and more - ★ 4796
    • levelup - A node.js wrapper for abstract-leveldown compliant stores - ★ 3395
    • objection.js - An SQL-friendly ORM for Node.js - ★ 3199
    • pg-promise - Promises/A+ interface for PostgreSQL - ★ 2004
    • couchnode - Couchbase Node.js Client Library (Official) - ★ 386
    • openrecord - Make ORMs great again! - ★ 321
    • couchdb-nano - Apache CouchDB Nano - ★ 226
    • aerospike-client-nodejs - Node.js client for the Aerospike database - ★ 153
    • finale - Create flexible REST endpoints and controllers from Sequelize models in your Express app - ★ 78
    • mongo-seeding - The ultimate solution for populating your MongoDB database. - ★ 41
    • database-js - Common Database Interface for Node - ★ 18
    • ioredis - A robust, performance-focused and full-featured Redis client for Node.js. - ★ 4972
    • keyv - Simple key-value storage with support for multiple backends - ★ 716
  • Security

    • upash - Unified API for password hashing algorithms - ★ 386
    • themis - Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across ten platforms. - ★ 614
    • snyk - CLI and build-time tool to find & fix known vulnerabilities in open-source dependencies - ★ 1266
  • Benchmarking

    • benchmark.js - A benchmarking library. As used on jsPerf.com. - ★ 3797
    • matcha - A caffeine driven, simplistic approach to benchmarking. - ★ 500
  • Authentication

    • passport - Simple, unobtrusive authentication for Node.js. - ★ 14463
    • grant - OAuth Middleware for Express, Koa and Hapi - ★ 1624
    • cloudrail-si-node-sdk - Unified API Library for: Cloud Storage, Social Log-In, Social Interaction, Payment, Email, SMS, POIs, Video & Messaging. Included services are Dropbox, Google Drive, OneDrive, OneDrive for Business, Box, Egnyte, PayPal, Stripe, Google Places, Foursquare, Yelp, YouTube, Vimeo, Twitch, Facebook Messenger, Telegram, Line, Viber, Facebook, GitHub, G… - ★ 249
  • Authorization

    • casl - CASL is an isomorphic authorization JavaScript library which restricts what resources a given user is allowed to access - ★ 851
    • node-casbin - An authorization library that supports access control models like ACL, RBAC, ABAC in Node.js - ★ 192
  • Email

    • nodemailer - Send e-mails with Node.JS – easy as cake! - ★ 10240
    • emailjs - html emails and attachments to any smtp server with nodejs - ★ 1688
    • email-templates - Create, preview, and send custom email templates for Node.js. Highly configurable and supports automatic inline CSS, stylesheets, embedded images and fonts, and much more! - ★ 2251
  • Job queues

    • kue - Kue is a priority job queue backed by redis, built for node.js. - ★ 8050
    • bull - Premium Queue package for handling jobs and messages in NodeJS. - ★ 3981
    • bee-queue - A simple, fast, robust job/task queue for Node.js, backed by Redis. - ★ 1152
    • rsmq - Redis Simple Message Queue - ★ 895
    • idoit - Redis-backed task queue engine with advanced task control and eventual consistency - ★ 30
    • agenda - Lightweight job scheduling for Node.js - ★ 4666
    • node-resque - It's Resque... For node! Background jobs using redis. - ★ 617
  • Node.js management

    • n - Node version management - ★ 10211
    • nave - ★ 1160
    • nodeenv - Virtual environment for Node.js & integrator with virtualenv - ★ 955
    • nvm-windows - A node.js version management utility for Windows. Ironically written in Go. - ★ 7309
  • Natural language processing

    • natural - general natural language facilities for node - ★ 8215
    • franc - Natural language detection - ★ 2823
    • leven - Measure the difference between two strings with the fastest JS implementation of the Levenshtein distance algorithm - ★ 391
  • Process management

    • pm2 - Node.js Production Process Manager with a built-in Load Balancer. - ★ 27006
    • passenger - A fast and robust web server and application server for Ruby, Python and Node.js - ★ 4234
    • node-supervisor - ★ 3490
    • node-mac - Node utilities for Mac - ★ 428
    • node-linux - Create native background daemons on Linux systems. - ★ 345
    • node-windows - Windows support for Node.JS scripts (daemons, eventlog, UAC, etc). - ★ 1577
    • nodemon - Monitor for any changes in your node.js application and automatically restart the server - perfect for development - ★ 16462
  • Automation

    • robotjs - Node.js Desktop Automation. - ★ 7416
  • Static site generators

    • wintersmith - A flexible static site generator - ★ 3386
    • docpad - Empower your website frontends with layouts, meta-data, pre-processors (markdown, jade, coffeescript, etc.), partials, skeletons, file watching, querying, and an amazing plugin system. DocPad will streamline your web development process allowing you to craft powerful static sites quicker than ever before. - ★ 2979
  • Content management systems

    • keystone - Node.js CMS and web app framework - ★ 13606
    • strapi - Node.js Content Management Framework (headless-CMS) to build powerful API with no effort. - ★ 9064
    • apostrophe - A CMS framework for Node.js that supports in-context editing, schema-driven content types, flexible widgets, and much more. Hint: start with the docs and use apostrophe-cli. - ★ 2410
    • tipe - Next Generation API-first CMS for developers. Generate an API-first CMS from a GraphQL schema with offline prototyping and an inline editor - ★ 1813
  • Forum

    • NodeBB - Node.js based forum software built for the modern web - ★ 9341
  • Blogging

    • Ghost - The platform for professional publishers - ★ 27926
    • hexo - A fast, simple & powerful blog framework, powered by Node.js. - ★ 24169
  • Weird

    • cows - ASCII cows - ★ 308
    • superb - Get superb like words - ★ 303
    • cat-ascii-faces - ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ” cat faces! - ★ 200
    • cat-names - Get popular cat names - ★ 198
    • superheroes - Get superhero names - ★ 188
    • dog-names - Get popular dog names - ★ 88
    • supervillains - Get supervillain names - ★ 85
    • nerds - The API after every nerd's heart... - ★ 61
  • Serialization

    • node-snappy - Nodejs bindings to Google's Snappy compression library - ★ 375
    • compactr.js - Schema based serialization made easy - ★ 71
  • Miscellaneous

    • cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server. - ★ 17850
    • faker.js - generate massive amounts of realistic fake data in Node.js and the browser - ★ 16129
    • awesome-electron - Useful resources for creating apps with Electron - ★ 15934
    • dotenv - Loads environment variables from .env for nodejs projects. - ★ 7358
    • hypernova - A service for server-side rendering your JavaScript views - ★ 4757
    • nodegit - Native Node bindings to Git. - ★ 3742
    • node-opencv - OpenCV Bindings for node.js - ★ 3570
    • ssh2 - SSH2 client and server modules written in pure JavaScript for node.js - ★ 3238
    • awesome-npm - Awesome npm resources and tips - ★ 3086
    • node-semver - The semver parser for node (the one npm uses) - ★ 2474
    • ow - Function argument validation for humans - ★ 2464
    • node-webworker-threads - Lightweight Web Worker API implementation with native threads - ★ 1903
    • file-type - Detect the file type of a Buffer/Uint8Array - ★ 769
    • emittery - Simple and modern async event emitter - ★ 745
    • is - Type check values: `is.string(' ') //=> true` - ★ 697
    • hasha - Hashing made simple. Get the hash of a buffer/string/stream/file. - ★ 635
    • node-pre-gyp - Node.js tool for easy binary deployment of C++ addons - ★ 580
    • generator-nm - Scaffold out a node module - ★ 570
    • bottleneck - Job scheduler and rate limiter, supports Clustering - ★ 517
    • node-module-boilerplate - Boilerplate to kickstart creating a node module - ★ 424
    • dot-prop - Get, set, or delete a property from a nested object using a dot path - ★ 337
    • import-lazy - Import a module lazily - ★ 151
    • import-fresh - Import a module while bypassing the cache - ★ 146
    • os-locale - Get the system locale - ★ 134
    • onetime - Ensure a function is only called once - ★ 79
    • strip-bom - Strip UTF-8 byte order mark (BOM) from a string - ★ 68
    • resolve-from - Resolve the path of a module like require.resolve() but from a given path - ★ 66
    • remote-git-tags - Get tags from a remote git repo. Using only JS. No git binary required. - ★ 32
    • adit - SSH tunnels – in any way you want it - ★ 21
    • env-dot-prop - Get, set, or delete nested properties of process.env using a dot path - ★ 11
    • execa - A better `child_process` - ★ 1636
    • clipboardy - Access the system clipboard (copy/paste) - ★ 514
    • awesome-cross-platform-nodejs - A curated list of awesome developer tools and libraries for writing and testing code that runs on Windows and Linux. - ★ 262
    • electron - Build cross-platform desktop apps with JavaScript, HTML, and CSS - ★ 66551
    • simplecrawler - Flexible event driven crawler for node. - ★ 1809
    • module-requests - Need a JavaScript module or looking for ideas? Welcome - ★ 422
    • mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input - ★ 404
    • opn - A better node-open. Opens stuff like websites, files, executables. Cross-platform. - ★ 1300
    • nodejs-guidelines - Tips, tricks, and resources for working with Node.js, and the start of an ongoing conversation on how we can improve the Node.js experience on Microsoft platforms. - ★ 1970
    • json-strictify - Safely serialize a value to JSON without unintended loss of data or going into an infinite loop due to circular references. - ★ 3
  • Tutorials

  • Articles

    • art-of-readme - Learn the art of writing quality READMEs. - ★ 4859
  • Cheatsheets

    • stream-faqs - Let's learn these things together - ★ 161
  • AST