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
-
Miscellaneous
- 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
- 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
- execa - A better `child_process` - ★ 1636
- clipboardy - Access the system clipboard (copy/paste) - ★ 514
- faker.js - generate massive amounts of realistic fake data in Node.js and the browser - ★ 16129
- cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server. - ★ 17850
- node-semver - The semver parser for node (the one npm uses) - ★ 2474
- dot-prop - Get, set, or delete a property from a nested object using a dot path - ★ 337
- file-type - Detect the file type of a Buffer/Uint8Array - ★ 769
- awesome-electron - Useful resources for creating apps with Electron - ★ 15934
- awesome-npm - Awesome npm resources and tips - ★ 3086
- nodegit - Native Node bindings to Git. - ★ 3742
- node-webworker-threads - Lightweight Web Worker API implementation with native threads - ★ 1903
- hypernova - A service for server-side rendering your JavaScript views - ★ 4757
- bottleneck - Job scheduler and rate limiter, supports Clustering - ★ 517
- emittery - Simple and modern async event emitter - ★ 745
- generator-nm - Scaffold out a node module - ★ 570
- import-fresh - Import a module while bypassing the cache - ★ 146
- import-lazy - Import a module lazily - ★ 151
- json-strictify - Safely serialize a value to JSON without unintended loss of data or going into an infinite loop due to circular references. - ★ 3
- node-module-boilerplate - Boilerplate to kickstart creating a node module - ★ 424
- resolve-from - Resolve the path of a module like require.resolve() but from a given path - ★ 66
- ssh2 - SSH2 client and server modules written in pure JavaScript for node.js - ★ 3238
- ow - Function argument validation for humans - ★ 2464
- hasha - Hashing made simple. Get the hash of a buffer/string/stream/file. - ★ 635
- onetime - Ensure a function is only called once - ★ 79
- strip-bom - Strip UTF-8 byte order mark (BOM) from a string - ★ 68
- os-locale - Get the system locale - ★ 134
- adit - SSH tunnels – in any way you want it - ★ 21
- node-pre-gyp - Node.js tool for easy binary deployment of C++ addons - ★ 580
- node-opencv - OpenCV Bindings for node.js - ★ 3570
- dotenv - Loads environment variables from .env for nodejs projects. - ★ 7358
- is - Type check values: `is.string(' ') //=> true` - ★ 697
- env-dot-prop - Get, set, or delete nested properties of process.env using a dot path - ★ 11
- remote-git-tags - Get tags from a remote git repo. Using only JS. No git binary required. - ★ 32
- mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input - ★ 404
- electron - Build cross-platform desktop apps with JavaScript, HTML, and CSS - ★ 66551
- simplecrawler - Flexible event driven crawler for node. - ★ 1809
- jsdom - A JavaScript implementation of the WHATWG DOM and HTML standards, for use with node.js - ★ 11069
- module-requests - Need a JavaScript module or looking for ideas? Welcome - ★ 422
-
Web frameworks
- awesome-meteor - A curated, community driven list of awesome Meteor packages, libraries, resources and shiny things - ★ 1287
- 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
- actionhero - actionhero.js is a multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks - ★ 1926
- 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
- micro - Asynchronous HTTP microservices - ★ 7611
- type-graphql - Create GraphQL schema and resolvers with TypeScript, using classes and decorators! - ★ 796
- next.js - The React Framework - ★ 31425
- nuxt.js - The Vue.js Developers Framework - ★ 16228
-
Node.js management
- nvm-windows - A node.js version management utility for Windows. Ironically written in Go. - ★ 7309
- n - Node version management - ★ 10211
- nave - ★ 1160
- nodeenv - Virtual environment for Node.js & integrator with virtualenv - ★ 955
-
Command-line utilities
- shelljs - Portable Unix shell commands for Node.js - ★ 8718
- log-symbols - Colored symbols for various log levels - ★ 361
- figures - Unicode symbols with Windows CMD fallbacks - ★ 296
- cross-env - Cross platform setting of environment scripts - ★ 3137
- oclif - Node.js Open CLI Framework. Built with by Heroku. - ★ 2767
- bit - Easily share code between projects with your team. - ★ 4579
- ink - React for interactive command-line apps - ★ 6445
- chalk - Terminal string styling done right - ★ 10582
- boxen - Create boxes in the terminal - ★ 421
- ora - Elegant terminal spinner - ★ 3972
- cli-cursor - Toggle the CLI cursor - ★ 50
- log-update - Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc. - ★ 523
- terminal-link - Create clickable links in the terminal - ★ 130
- cli-columns - Columnated lists for the CLI. Unicode and ANSI safe. - ★ 14
- cli-truncate - Truncate a string to a specific width in the terminal - ★ 32
- node-multispinner - Multiple, simultaneous, individually controllable spinners for concurrent tasks in Node.js CLI programs - ★ 226
- gradient-string - Beautiful color gradients in terminal output - ★ 315
- yargs - yargs the modern, pirate-themed successor to optimist. - ★ 5397
- Inquirer.js - A collection of common interactive command line user interfaces. - ★ 8564
- string-width - Get the visual width of a string - the number of columns required to display it - ★ 108
- blessed - A high-level terminal interface library for node.js. - ★ 7846
- terminal-image - Display images in the terminal - ★ 356
- meow - CLI app helper - ★ 1552
- node-drawille - Drawing in terminal with unicode braille characters - ★ 763
- cli-table3 - Pretty unicode tables for the command line - ★ 18
- conf - Simple config handling for your app or module - ★ 318
- get-stdin - Get stdin as a string or buffer - ★ 186
- columnify - Create text-based columns suitable for console output. Supports cell wrapping. - ★ 315
- listr - Terminal task list - ★ 1830
- ansi-escapes - ANSI escape codes for manipulating the terminal - ★ 219
- yn - Parse yes/no like values - ★ 120
- chart - Ansi charts for nodejs - ★ 221
- cfonts - Sexy fonts for the console - ★ 361
- omelette - Omelette is a simple, template based autocompletion tool for Node projects with super easy API. (For Bash, Zsh and Fish) - ★ 771
- sudo-block - Block users from running your app with root permissions - ★ 63
- sparkly - Generate sparklines ▁▂▃▅▂▇ - ★ 279
- cliffy - NodeJS Framework for Interactive CLIs - ★ 161
- first-run - Check if it's the first time the process is run - ★ 54
- loud-rejection - Make unhandled promise rejections fail loudly instead of the default silent fail - ★ 220
- insight - Node.js module to help you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics - ★ 437
- node-progress - Flexible ascii progress bar for nodejs - ★ 2013
- term-size - Reliably get the terminal window size - ★ 76
- update-notifier - Update notifications for your CLI app - ★ 1086
-
Process management
- 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
- 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-mac - Node utilities for Mac - ★ 428
- node-linux - Create native background daemons on Linux systems. - ★ 345
- node-supervisor - ★ 3490
-
Filesystem
- rimraf - A `rm -rf` util for nodejs - ★ 2829
- make-dir - Make a directory and its parents if needed - Think `mkdir -p` - ★ 323
- cpy - Copy files - ★ 189
- chokidar - A neat wrapper around node.js fs.watch / fs.watchFile / fsevents. - ★ 4708
- node-graceful-fs - fs with incremental backoff on EMFILE - ★ 788
- node-fs-extra - Node.js: extra methods for the fs object like copy(), remove(), mkdirs() - ★ 4963
- del - Delete files and directories - ★ 876
- find-up - Find a file or directory by walking up parent directories - ★ 174
- globby - User-friendly glob matching - ★ 758
- filenamify - Convert a string to a valid safe filename - ★ 183
- fs-jetpack - Better file system API for Node.js - ★ 431
- load-json-file - Read and parse a JSON file - ★ 122
- write-json-file - Stringify and write JSON to a file atomically - ★ 109
- fs-write-stream-atomic - Like `fs.createWriteStream(...)`, but atomic. - ★ 43
- lnfs - Safely force create symlinks - ★ 9
- istextorbinary - Determines if a buffer is comprised of text or binary - ★ 45
- pkg-dir - Find the root directory of a Node.js project or npm package - ★ 78
- filehound - Flexible and fluent interface for searching the file system - ★ 131
- move-file - Move a file - Even works across devices - ★ 103
-
Security
-
Command-line apps
- lessmd - Minimal marked based unix terminal document viewer/pager with many features like markdown to terminal translation, file change watching and more. - ★ 93
- np - A better `npm publish` - ★ 3490
- gtop - System monitoring dashboard for terminal - ★ 7074
- clipboard-cli - Access the system clipboard (copy/paste) - ★ 231
- cash - Cross-platform Linux commands in ES6 - ★ 7567
- speed-test - Test your internet connection speed and ping using speedtest.net from the CLI - ★ 3034
- node-bcat - A pipe to browser utility - ★ 275
- localtunnel - expose yourself - ★ 7593
- wallpaper - Manage the desktop wallpaper - ★ 552
- discharge - A simple, easy way to deploy static websites to Amazon S3. - ★ 294
- auto-install - Install dependencies as you code - ★ 958
- carbon-now-cli - Beautiful images of your code — from right inside your terminal. - ★ 3425
- pageres - Capture website screenshots - ★ 8453
- trash - Move files and directories to the trash - ★ 1634
- fkill-cli - Fabulously kill processes. Cross-platform. - ★ 5420
- vtop - Wow such top. So stats. More better than regular top. - ★ 3011
- is-online - Check if the internet connection is up - ★ 435
- emoj - Find relevant emoji from text on the command-line - ★ 1557
- browser-run - The easiest way of running code in a browser environment - ★ 324
- xo - JavaScript happiness style linter - ★ 4139
- cost-of-modules - Find out which of your dependencies are slowing you down - ★ 2263
- david - Node.js module that tells you when your package npm dependencies are out of date. - ★ 846
- gh-home - Open the GitHub page of the given or current directory repo - ★ 98
- Jsome - Make your JSON look AWESOME - ★ 139
- npm-home - Open the npm page, Yarn page, or GitHub repo of a package - ★ 135
- npm-name - Check whether a package name is available on npm - ★ 81
- empty-trash - Empty the trash - ★ 90
- is-up - Check whether a website is up or down - ★ 297
- public-ip - Get your public IP address - very fast! - ★ 341
- live-server - A simple development http server with live reload capability. - ★ 2422
- normit - Translations with speech synthesis in your terminal as a node package - ★ 193
- pjs - Pipeable javascript. Quickly filter, map, and reduce from the terminal - ★ 345
- license-checker - Check NPM package licenses - ★ 741
- tmpin - Add stdin support to any CLI app that accepts file input - ★ 109
- wifi-password-cli - Get current wifi password - ★ 141
- dark-mode - Control the macOS dark mode from the command-line - ★ 380
- mobicon-cli - Mobile icon generator - ★ 57
- mobisplash-cli - Mobile app splash screen generator - ★ 32
- diff2html-cli - Simple CLI for diff2html library - ★ 154
- jscpd - Copy/paste detector for programming source code. - ★ 855
- atmo - Mock data for your prototypes and demos. Remote deployments to Zeit now. - ★ 726
- svg-term-cli - Share terminal sessions via SVG and CSS - ★ 884
- cash-cli - Convert Currency Rates using your terminal! - ★ 66
- kill-tabs - Kill all Chrome tabs to improve performance, decrease battery usage, and save memory - ★ 231
- itunes-remote - Control iTunes via CLI - ★ 345
- brightness-cli - Change the screen brightness - ★ 130
- dev-time-cli - Get the current local time of a GitHub user. - ★ 156
- subdownloader - Painless subtitle downloader - ★ 99
- iponmap - commandline IP location finder - ★ 175
- themer - themer takes a set of colors and generates themes for your apps (editors, terminals, wallpapers, and more). - ★ 1704
- standard - JavaScript Style Guide, with linter & automatic code fixer - ★ 19655
- http-server - a simple zero-configuration command-line http server - ★ 7629
- alex - Catch insensitive, inconsiderate writing - ★ 2798
- trymodule - It's never been easier to try nodejs modules! - ★ 1021
- taskbook - Tasks, boards & notes for the command-line habitat - ★ 5204
- torrent - download torrents with node from the CLI - ★ 523
-
AST
-
Content management systems
- 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
- strapi - Node.js Content Management Framework (headless-CMS) to build powerful API with no effort. - ★ 9064
- keystone - Node.js CMS and web app framework - ★ 13606
- 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
-
Database
- 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
- sequelize - An easy-to-use multi SQL dialect ORM for Node.js - ★ 16506
- objection.js - An SQL-friendly ORM for Node.js - ★ 3199
- lowdb - lowdb is a small local JSON database powered by Lodash (supports Node, Electron and the browser) - ★ 9075
- mongoose - MongoDB object modeling designed to work in an asynchronous environment. - ★ 17340
- levelup - A node.js wrapper for abstract-leveldown compliant stores - ★ 3395
- node-mongodb-native - Mongo DB Native NodeJS Driver - ★ 7429
- aerospike-client-nodejs - Node.js client for the Aerospike database - ★ 153
- mysql - A pure node.js JavaScript Client implementing the MySql protocol. - ★ 13069
- node-postgres - PostgreSQL client for node.js. - ★ 6690
- pg-promise - Promises/A+ interface for PostgreSQL - ★ 2004
- couchdb-nano - Apache CouchDB Nano - ★ 226
- couchnode - Couchbase Node.js Client Library (Official) - ★ 386
- 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
- openrecord - Make ORMs great again! - ★ 321
- nedb - The JavaScript Database, for Node.js, nw.js, electron and the browser - ★ 9038
- finale - Create flexible REST endpoints and controllers from Sequelize models in your Express app - ★ 78
- database-js - Common Database Interface for Node - ★ 18
- mongo-seeding - The ultimate solution for populating your MongoDB database. - ★ 41
- knex - A query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use. - ★ 8191
- 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
- massive-js - A data mapper for Node.js and PostgreSQL. - ★ 2465
-
Automation
- robotjs - Node.js Desktop Automation. - ★ 7416
-
Debugging / Profiling
- 0x - single-command flamegraph profiling - ★ 1153
- 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
- iron-node - Debug Node.js code with Chrome Developer Tools. - ★ 2371
- ndb - ndb is an improved debugging experience for Node.js, enabled by Chrome DevTools - ★ 8436
- why-is-node-running - Node is running but you don't know why? why-is-node-running is here to help you. - ★ 818
- njsTrace - A Node.js tracing and instrumentation utility - ★ 231
- stackman - He is like Batman, but for Node.js stack traces - ★ 173
- locus - Locus is a debugging module for node.js - ★ 255
- ctrace - Well-formatted and improved trace system calls and signals (when the debugger does not help) - ★ 99
- leakage - Memory leak testing for node. - ★ 1300
- node-inspector - Node.js debugger based on Blink Developer Tools - ★ 12295
- node-vstream - instrumented streams - ★ 54
- debug - A tiny JavaScript debugging utility modelled after Node.js core's debugging technique. Works in Node.js and web browsers - ★ 6923
-
URL
- linkify-it - Links recognition library with full unicode support - ★ 248
- normalize-url - Normalize a URL - ★ 308
- humanize-url - Humanize a URL: → sindresorhus.com - ★ 171
- url-pattern - easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings. - ★ 396
- url-unshort - Short links expander for node.js - ★ 33
- speakingurl - Generate a slug – transliteration with a lot of options - ★ 967
- embedza - Create HTML snippets/embeds from URLs using info from oEmbed, Open Graph, meta tags. - ★ 37
-
Natural language processing
- franc - Natural language detection - ★ 2823
- natural - general natural language facilities for node - ★ 8215
- leven - Measure the difference between two strings with the fastest JS implementation of the Levenshtein distance algorithm - ★ 391
- retext - Natural language processor powered by plugins based on (and , ) - ★ 1625
-
Mad science
- isomorphic-git - A pure JavaScript implementation of git for node and browsers! - ★ 3447
- js-git - A JavaScript implementation of Git. - ★ 3446
- turf - A modular geospatial engine written in JavaScript - ★ 3987
- peerflix - Streaming torrent client for node.js - ★ 4955
- brain.js - Neural networks in JavaScript - ★ 6413
- js-ipfs - IPFS implementation in JavaScript - ★ 3099
- bitcoinjs-lib - A javascript Bitcoin library for node.js and browsers. - ★ 3125
- cytoscape.js - Graph theory (network) library for visualisation and analysis - ★ 4860
- NodeOS - Lightweight operating system using Node.js as userspace - ★ 5701
- peerwiki - all of wikipedia on bittorrent - ★ 285
- peercast - torrent-stream + chromecast - ★ 401
- bitcore - A full stack for bitcoin and blockchain-based applications - ★ 2942
- 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
- webtorrent - Streaming torrent client for the web - ★ 18079
- pdfkit - A JavaScript PDF generation library for Node and the browser - ★ 4336
- skale - High performance distributed data processing engine - ★ 305
-
Image
- pica - Resize image in browser with high quality and high speed - ★ 1419
- gm - GraphicsMagick for node - ★ 5338
- sharp - High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP and TIFF images. Uses the libvips library. - ★ 9778
- 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
- lwip - Light Weight Image Processor for NodeJS - ★ 2157
- jimp - An image processing library written entirely in JavaScript for Node, with zero external or native dependencies. - ★ 7145
-
Date
- luxon - A library for working with dates and times in JS - ★ 7204
- date-fns - Modern JavaScript date utility library - ★ 14943
- node-dateformat - A node.js package for Steven Levithan's excellent dateFormat() function. - ★ 914
- tz-format - Format a date with timezone - ★ 5
- node-cctz - Fast parsing, formatting and timezone manipulations for dates - ★ 55
-
Minifiers
- imagemin - Tense, nervous, minifying images? - ★ 2584
- minimize - Minimize HTML - ★ 139
- UglifyJS2 - JavaScript parser / mangler / compressor / beautifier toolkit - ★ 9468
- clean-css - Fast and efficient CSS optimizer for node.js and the Web - ★ 3063
- minify - An ES6+ aware minifier based on the Babel toolchain (beta) - ★ 3613
-
Build tools
- 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
- parcel - Blazing fast, zero configuration web application bundler - ★ 27943
- 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
- broccoli - Browser compilation library – an asset pipeline for applications that run in the browser - ★ 3150
- fuse-box - A blazing fast js bundler/loader with a comprehensive API - ★ 3554
- 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
- pkg - Package your Node.js project into an executable - ★ 11879
-
Documentation
- esdoc - ESDoc - Good Documentation for JavaScript - ★ 2240
- documentation - documentation for modern JavaScript - ★ 4132
-
Parsing
- jison - Bison in JavaScript. - ★ 3203
- markdown-it - Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed - ★ 6295
- postcss - Transforming styles with JS plugins - ★ 19653
- csv-parser - Streaming csv parser inspired by binary-csv that aims to be faster than everyone else - ★ 566
- js-yaml - JavaScript YAML parser and dumper. Very fast. - ★ 3372
- node-xml2js - XML to JavaScript object converter. - ★ 3436
- binary-extract - Extract a value from a buffer of json without parsing the whole thing - ★ 139
- URI.js - Javascript URL mutation library - ★ 5513
- pegjs - PEG.js: Parser generator for JavaScript - ★ 3007
- parse5 - HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant. - ★ 1909
- strip-json-comments - Strip comments from JSON. Lets you use comments in your JSON files! - ★ 381
- strip-css-comments - Strip comments from CSS - ★ 83
- parse-json - Parse JSON with more helpful errors - ★ 131
- JSONStream - rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects) - ★ 1592
- neat-csv - Fast CSV parser - ★ 75
- stylecow - Modern CSS to all browsers - ★ 128
- ref - Turn Buffer instances into "pointers" - ★ 299
- 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
- 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
- x-ray - The next web scraper. See through the <html> noise. - ★ 4727
- remark - Markdown processor powered by plugins based on (and , ) - ★ 1805
- nearley - Simple, fast, powerful parser toolkit for JavaScript. - ★ 1987
- google-libphonenumber - The up-to-date and reliable Google's libphonenumber package for node.js. - ★ 574
-
Testing
- mochify.js - TDD with Browserify, Mocha, Headless Chrome and WebDriver - ★ 317
- nightwatch - Automated testing and continuous integration framework based on Node.js and using the Webdriver protocol - ★ 8715
- webdriverio - Next-gen WebDriver test automation framework for Node.js - ★ 4384
- testen - Run tests for multiple versions of Node.js in local env. - ★ 163
- intern - A next-generation code testing stack for JavaScript. - ★ 4064
- testcafe - A Node.js tool to automate end-to-end web testing. - ★ 5679
- 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
- sinon - Test spies, stubs and mocks for JavaScript. - ★ 6587
- navit - Simple client testing from your scripts - ★ 44
- hook-std - Hook and modify stdout/stderr - ★ 35
- abstruse - Continuous Integration platform built with Node.js and Docker. - ★ 387
- jest - Delightful JavaScript Testing. - ★ 21588
- tape - tap-producing test harness for node and browsers - ★ 4802
- nock - HTTP server mocking and expectations library for Node.js - ★ 7137
- nyc - the Istanbul command line interface - ★ 3003
- node-tap - Test Anything Protocol tools for node - ★ 1275
- trevor - Your own mini Travis CI to run tests locally - ★ 2085
-
Hardware
- johnny-five - JavaScript Robotics and IoT programming framework, developed at Bocoup. - ★ 9896
- onoff - GPIO access and interrupt detection with Node.js - ★ 741
- i2c-bus - I2C serial bus access with Node.js - ★ 148
- spi-device - SPI serial bus access with Node.js - ★ 42
- pigpio - Fast GPIO, PWM, servo control, state change notification and interrupt handling with Node.js on the Raspberry Pi - ★ 383
- GPS.js - A NMEA parser and GPS utility library - ★ 72
- GPS.js - A NMEA parser and GPS utility library - ★ 72
- 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
-
Humanize
- pretty-error - See node.js errors with less clutter - ★ 1190
- pretty-ms - Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s` - ★ 347
- pretty-bytes - Convert bytes to a human readable string: 1337 → 1.34 kB - ★ 412
- node-readability - Scrape/Crawl article from any site automatically. Make any web page readable, no matter Chinese or English. - ★ 271
- ms - Tiny milisecond conversion utility - ★ 1674
-
Control flow
- bluebird - Bluebird is a full featured promise library with unmatched performance. - ★ 17527
- pify - Promisify a callback-style function - ★ 1062
- awesome-observables - Awesome Observable related stuff - An Observable is a collection that arrives over time. - ★ 239
- async - Async utilities for node and the browser - ★ 24879
- promise-fun - Promise packages, patterns, chat, and tutorials - ★ 2045
- zen-observable - An Implementation of Observables for Javascript - ★ 457
- delay - Delay a promise a specified amount of time - ★ 276
- promise-memoize - Memoize promise-returning functions. Includes cache expire and prefetch. - ★ 37
- valvelet - Limit the execution rate of a function - ★ 18
- p-map - Map over promises concurrently - ★ 310
- rxjs - A reactive programming library for JavaScript - ★ 15738
- highland - High-level streams library for Node.js and the browser - ★ 3036
- each-async - Async concurrent iterator (async forEach) - ★ 104
- js-csp - CSP channels for Javascript (like Clojurescript's core.async, or Go) - ★ 2168
-
Real-time
- socket.io - Realtime application framework (Node.JS server) - ★ 44232
- primus - Primus, the creator god of the transformers & an abstraction layer for real-time to prevent module lock-in. - ★ 3728
- kalm.js - The socket manager - ★ 63
- MQTT.js - The MQTT client for Node.js and the browser - ★ 3722
- socketcluster - Highly scalable realtime framework - ★ 4977
- faye - Simple pub/sub messaging for the web - ★ 4152
- 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
- uWebSockets - Tiny WebSockets - ★ 9753
-
Streams
- through2 - Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise - ★ 1453
- into-stream - Convert a string/promise/array/iterable/buffer/typedarray/arraybuffer/object into a stream - ★ 76
- get-stream - Get a stream as a string, buffer, or array - ★ 131
- readable-stream - Node-core streams for userland - ★ 667
- from2 - Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2" - ★ 98
- duplexify - Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input - ★ 138
- pumpify - Combine an array of streams into a single duplex stream using pump and duplexify - ★ 147
- peek-stream - Transform stream that lets you peek the first line before deciding how to parse it - ★ 42
- node-byline - Line-by-line Stream reader for node.js - ★ 264
- first-chunk-stream - Transform the first chunk in a stream - ★ 19
- pad-stream - Pad each line in a stream - ★ 5
- multistream - A stream that emits multiple other streams one after another (streams2) - ★ 146
- through2-concurrent - Simple Node.JS stream (streams2) Transform that runs the transform functions concurrently (with a set max concurrency) - ★ 60
- binary-split - a fast newline (or any delimiter) splitter stream - like require('split') but specific for binary data - ★ 61
- stream-combiner2 - ★ 71
-
Templating
- ejs - Embedded JavaScript templates -- - ★ 2953
- 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
- handlebars.js - ★ 13883
-
Text
- iconv-lite - Convert character encodings in pure javascript. - ★ 1848
- matcher - Simple wildcard matching - ★ 411
- camelcase - Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar - ★ 260
- escape-string-regexp - Escape RegExp special characters - ★ 270
- he - A robust HTML entity encoder/decoder written in JavaScript. - ★ 1738
- string-length - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes - ★ 58
- splice-string - Remove or replace part of a string like Array#splice - ★ 13
- indent-string - Indent each line in a string - ★ 57
- strip-indent - Strip leading whitespace from each line in a string - ★ 77
- detect-indent - Detect the indentation of code - ★ 120
- i18n-node - Lightweight simple translation module for node.js / express.js with dynamic json storage. Uses common __('...') syntax in app and templates. - ★ 2206
- babelfish - human friendly i18n for javascript (node.js + browser) - ★ 194
- unhomoglyph - Replace all homoglyphs with base characters. Useful to detect similar strings. - ★ 13
- i18next - i18next: learn once - translate everywhere - ★ 3683
- execall - Find multiple RegExp matches in a string - ★ 74
-
Compression
- node-archiver - a streaming interface for archive generation - ★ 1395
- pako - high speed zlib port to javascript, works in browser & node.js - ★ 1911
- yazl - yet another zip library for node - ★ 162
- yauzl - yet another unzip library for node - ★ 342
- tar-stream - tar-stream is a streaming tar parser and generator. - ★ 229
- decompress - Extracting archives made easy - ★ 249
- tar-fs - fs bindings for tar-stream - ★ 224
-
Static site generators
- 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
- wintersmith - A flexible static site generator - ★ 3386
- assemble - Get the rocks out of your socks! Assemble makes you fast at creating code projects. Used by thousands of projects for rapid prototyping, themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websites/static site generator, an alternative to Jekyll for gh-pages and more! Gulp- and grunt-friendly. - ★ 3601
- phenomic - Modular website compiler (React, Webpack, Reason and whatever you want) - ★ 3110
- docsify - A magical documentation site generator. - ★ 7924
-
Functional programming
- ramda - Practical functional Javascript - ★ 14475
- lazy.js - Like Underscore, but lazier - ★ 5401
- mout - Modular JavaScript Utilities - ★ 1037
- kefir - A Reactive Programming library for JavaScript - ★ 1489
- immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity. - ★ 25610
-
Authentication
-
Benchmarking
- benchmark.js - A benchmarking library. As used on jsPerf.com. - ★ 3797
- matcha - A caffeine driven, simplistic approach to benchmarking. - ★ 500
-
Email
- emailjs - html emails and attachments to any smtp server with nodejs - ★ 1688
- nodemailer - Send e-mails with Node.JS – easy as cake! - ★ 10240
- 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
-
Forum
- NodeBB - Node.js based forum software built for the modern web - ★ 9341
-
Logging
- winston - A logger for just about everything. - ★ 11879
- pino - super fast, all natural json logger - ★ 3262
- console-log-level - The most simple logger imaginable - ★ 30
- storyboard - End-to-end, hierarchical, real-time, colorful logs and stories - ★ 506
- signale - Hackable console logger - ★ 6756
-
HTTP
- request - 🏊🏾 Simplified HTTP request client. - ★ 21094
- got - Simplified HTTP requests - ★ 4412
- 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
- wreck - HTTP Client Utilities - ★ 325
- 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
- download - Download and extract files - ★ 768
- cacheable-request - Wrap native HTTP requests with RFC compliant cache support - ★ 152
- 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
- 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
-
Blogging
-
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
-
Cheatsheets
- stream-faqs - Let's learn these things together - ★ 161
-
Weird
- cat-names - Get popular cat names - ★ 198
- cows - ASCII cows - ★ 308
- superb - Get superb like words - ★ 303
- dog-names - Get popular dog names - ★ 88
- superheroes - Get superhero names - ★ 188
- supervillains - Get supervillain names - ★ 85
- cat-ascii-faces - ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ” cat faces! - ★ 200
- nerds - The API after every nerd's heart... - ★ 61
- cool-ascii-faces - ᕙ༼ຈل͜ຈ༽ᕗ - ★ 1632
-
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
-
Network
- get-port - Get an available port - ★ 281
- ipify - Get your public IP address - ★ 148
- getmac - Get the mac address of the current machine you are on via Node.js - ★ 160
- node-dhcp - A DHCP server and client written in pure JavaScript - ★ 129
- netcat - Netcat client and server modules written in pure Javascript for Node.js. - ★ 217
-
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
-
Job queues
- bull - Premium Queue package for handling jobs and messages in NodeJS. - ★ 3981
- idoit - Redis-backed task queue engine with advanced task control and eventual consistency - ★ 30
- rsmq - Redis Simple Message Queue - ★ 895
- bee-queue - A simple, fast, robust job/task queue for Node.js, backed by Redis. - ★ 1152
- kue - Kue is a priority job queue backed by redis, built for node.js. - ★ 8050
- agenda - Lightweight job scheduling for Node.js - ★ 4666
- node-resque - It's Resque... For node! Background jobs using redis. - ★ 617
-
Serialization
- node-snappy - Nodejs bindings to Google's Snappy compression library - ★ 375
- compactr.js - Schema based serialization made easy - ★ 71
- protobuf.js - Protocol Buffers for JavaScript (& TypeScript). - ★ 4989
-
Tutorials
- module-best-practices - some best practices for JS modules - ★ 1211
- you-dont-know-node - You Don't Know Node.js - ★ 960
- nodebestpractices - The largest Node.JS best practices list (November 2018) - ★ 18414
- art-of-node - a short introduction to node.js - ★ 7901
- stream-handbook - how to write node programs with streams - ★ 12032
-
Articles
- art-of-readme - Learn the art of writing quality READMEs. - ★ 4859
Programming Languages
Categories
Command-line apps
56
Command-line utilities
43
Miscellaneous
40
Database
24
Parsing
23
Testing
19
Filesystem
19
Mad science
16
Text
15
Streams
15
Control flow
14
HTTP
13
Debugging / Profiling
13
Web frameworks
12
Build tools
9
Hardware
9
Real-time
9
Weird
9
Image
7
Process management
7
URL
7
Job queues
7
Compression
7
Functional programming
5
Tutorials
5
Minifiers
5
Static site generators
5
Humanize
5
Date
5
Templating
5
Network
5
Math
5
Logging
5
Number
4
Node.js management
4
Content management systems
4
Data validation
4
Natural language processing
4
Email
3
Serialization
3
Authorization
2
Blogging
2
Benchmarking
2
Authentication
2
AST
2
Security
2
Documentation
2
Forum
1
Automation
1
Cheatsheets
1
Articles
1
Sub Categories
Keywords
nodejs
125
javascript
113
node
28
cli
24
typescript
23
npm-package
18
command-line
12
promise
10
json
10
http
10
postgresql
9
mysql
8
testing
8
node-js
8
terminal
7
browser
7
electron
7
iot
7
cli-app
7
html
6
node-module
6
stream
6
database
6
api
6
npm
6
promises
5
static-site-generator
5
css
5
list
5
raspberry-pi
5
react
5
framework
5
performance
5
websockets
5
rest
5
orm
5
graphql
5
awesome
5
awesome-list
5
async
5
windows
5
http-client
5
server
5
shell
5
websocket
4
serial
4
beaglebone-black
4
parser
4
webdriver
4
serialization
4