In this article we will explore the most awesome NodeJS libraries, examples, apps as well as resources. All of them are open source. The packages are organized based on their respective categories.

[lwptoc]

Mad science

  1. webtorrent

Streaming torrent client for Node.js and the browser.

  1. peerflix

Streaming torrent client.

  1. ipfs

Distributed file system that seeks to connect all computing devices with the same system of files.

  1. stackgl

Open software ecosystem for WebGL, built on top of browserify and npm.

  1. peerwiki

All of Wikipedia on BitTorrent.

  1. peercast

Stream a torrent video to Chromecast.

  1. BitcoinJS

Clean, readable, proven Bitcoin library.

  1. Bitcore

Pure and powerful Bitcoin library.

  1. PDFKit

PDF generation library.

  1. turf

Modular geospatial processing and analysis engine.

  1. webcat

p2p pipe across the web using WebRTC that uses your GitHub private/public key for authentication.

  1. NodeOS

The first operating system powered by npm.

  1. YodaOS

AI operating system.

  1. Brain.js

Machine-learning framework.

  1. Pipcook

Front-end algorithm framework to create a machine learning pipeline.

  1. Cytoscape.js

Graph theory (a.k.a. network

  1. js-git

JavaScript implementation of Git.

  1. xlsx

Pure JS Excel spreadsheet reader and writer.

  1. isomorphic-git

Pure JavaScript implementation of Git.

Command-line apps

  1. np

Better npm publish.

  1. npm-name

Check a package name’s availability on npm.

  1. gh-home

Open the GitHub page of the repo in the current directory.

  1. npm-home

Open the npm page of a package.

  1. trash

Safer alternative to rm.

  1. speed-test

Test your internet connection speed and ping.

  1. pageres

Capture website screenshots.

  1. cpy

Copy files.

  1. vtop

More better top, with nice charts.

  1. empty-trash

Empty the trash.

  1. is-up

Check whether a website is up or down.

  1. is-online

Check if the internet connection is up.

  1. public-ip

Get your public IP address.

  1. clipboard-cli

Copy & paste on the terminal.

  1. XO

Enforce strict code style using the JavaScript happiness style.

  1. ESLint

The pluggable linting utility for JavaScript.

  1. David

Tells you when your package npm dependencies are out of date.

  1. http-server

Simple, zero-config command-line HTTP server.

  1. Live Server

Development HTTP-server with livereload capability.

  1. bcat

Pipe command output to web browsers.

  1. normit

Google Translate with speech synthesis in your terminal.

  1. fkill

Fabulously kill processes. Cross-platform.

  1. pjs

Pipeable JavaScript. Quickly filter, map, and reduce from the terminal.

  1. license-checker

Check licenses of your app’s dependencies.

  1. browser-run

Easily run code in a browser environment.

  1. tmpin

Adds stdin support to any CLI app that accepts file input.

  1. wifi-password

Get the current wifi password.

  1. wallpaper

Change the desktop wallpaper.

  1. pen

Live Markdown preview in the browser from your favorite editor.

  1. dark-mode

Toggle the macOS Dark Mode.

  1. Jsome

Pretty prints JSON with configurable colors and indentation.

  1. mobicon

Mobile app icon generator.

  1. mobisplash

Mobile app splash screen generator.

  1. diff2html-cli

Pretty git diff to HTML generator.

  1. trymodule

Try out npm packages in the terminal.

  1. jscpd

Copy/paste detector for source code.

  1. atmo

Server-side API mocking.

  1. auto-install

Auto installs dependencies as you code.

  1. lessmd

Markdown in the terminal.

  1. cost-of-modules

Find out which dependencies are slowing you down.

  1. localtunnel

Expose your localhost to the world.

  1. svg-term-cli

Share terminal sessions via SVG.

  1. gtop

System monitoring dashboard for the terminal.

  1. themer

Generate themes for your editor, terminal, wallpaper, Slack, and more.

  1. carbon-now-cli

Beautiful images of your code — from right inside your terminal.

  1. cash-cli

Convert between 170 currencies.

  1. taskbook

Tasks, boards & notes for the command-line habitat.

  1. discharge

Easily deploy static websites to Amazon S3.

  1. npkill

Easily find and remove old and heavy node_modules folders.

Functional programming

  1. lodash

Utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.

  1. immutable

Immutable data collections.

  1. Ramda

Utility library with a focus on flexible functional composition enabled by automatic currying and reversed argument order. Avoids mutating data.

  1. 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.

  1. RxJS

Functional reactive library for transforming, composing, and querying various kinds of data.

  1. Kefir.js

Reactive library with focus on high performance and low memory usage.

HTTP

  1. got

Nicer interface to the built-in http module.

  1. undici

High performance HTTP client written from scratch with zero dependencies.

  1. ky-universal

Universal HTTP client based on Fetch.

  1. node-fetch

window.fetch for Node.js.

  1. axios

Promise based HTTP client (works in the browser too

  1. superagent

HTTP request library.

  1. http-fake-backend

Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.

  1. cacheable-request

Wrap native HTTP requests with RFC compliant cache support.

  1. gotql

GraphQL request library built on [got](https://github.com/sindresorhus/got

  1. global-agent

Global HTTP/HTTPS proxy agent that is configurable using environment variables.

  1. smoke

File-based HTTP mock server with recording abilities.

  1. purest

REST client.

Debugging / Profiling

  1. debug

Tiny debugging utility.

  1. why-is-node-running

Node.js is running but you don’t know why?

  1. njsTrace

Instrument and trace your code, see all function calls, arguments, return values, as well as the time spent in each function.

  1. vstream

Instrumentable streams mix-ins to inspect a pipeline of streams.

  1. stackman

Enhance an error stacktrace with code excerpts and other goodies.

  1. locus

Starts a REPL at runtime that has access to all variables.

  1. 0x

Flamegraph profiling.

  1. ctrace

Well-formatted and improved trace system calls and signals.

  1. leakage

Write memory leak tests.

  1. llnode

Post-mortem analysis tool which allows you to inspect objects and get insights from a crashed Node.js process.

  1. thetool

Capture different CPU, memory, and other profiles for your app in Chrome DevTools friendly format.

  1. swagger-stats

Trace API calls and monitor API performance, health, and usage metrics.

  1. NiM

Manages DevTools debugging workflow.

  1. dats

Minimalistic and zero-dependencies [StatsD](https://github.com/statsd/statsd

Logging

  1. pino

Extremely fast logger inspired by Bunyan.

  1. winston

Multi-transport async logging library.

  1. console-log-level

The most simple logger imaginable with support for log levels and custom prefixes.

  1. storyboard

End-to-end, hierarchical, real-time, colorful logs and stories.

  1. consola

Console logger.

Command-line utilities

  1. chalk

Terminal string styling done right.

  1. meow

CLI app helper.

  1. yargs

Command-line parser that automatically generates an elegant user-interface.

  1. ora

Elegant terminal spinner.

  1. get-stdin

Easier stdin.

  1. log-update

Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.

  1. Ink

React for interactive command-line apps.

  1. listr

Terminal task list.

  1. conf

Simple config handling for your app or module.

  1. ansi-escapes

ANSI escape codes for manipulating the terminal.

  1. log-symbols

Colored symbols for various log levels.

  1. figures

Unicode symbols with Windows CMD fallbacks.

  1. boxen

Create boxes in the terminal.

  1. terminal-link

Create clickable links in the terminal.

  1. terminal-image

Display images in the terminal.

  1. string-width

Get the visual width of a stringthe number of columns required to display it.

  1. cli-truncate

Truncate a string to a specific width in the terminal.

  1. blessed

Curses-like library.

  1. Inquirer.js

Interactive command-line prompt.

  1. yn

Parse yes/no like values.

  1. cli-table3

Pretty unicode tables.

  1. drawille

Draw on the terminal with unicode braille characters.

  1. ascii-charts

ASCII bar chart in the terminal.

  1. progress

Flexible ascii progress bar.

  1. insight

Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics.

  1. cli-cursor

Toggle the CLI cursor.

  1. cli-columns

Columnated unicode and ansi-safe text lists.

  1. cfonts

Sexy ASCII fonts for the console.

  1. multispinner

Multiple, simultaneous, individually controllable CLI spinners.

  1. omelette

Shell autocompletion helper.

  1. cross-env

Set environment variables cross-platform.

  1. shelljs

Portable Unix shell commands.

  1. sudo-block

Block users from running your app with root permissions.

  1. sparkly

Generate sparklines ▁▂▃▅▂▇.

  1. Bit

Create, maintain, find and use small modules and components across repositories.

  1. gradient-string

Beautiful color gradients in terminal output.

  1. oclif

CLI framework complete with parser, automatic documentation, testing, and plugins.

  1. term-size

Reliably get the terminal window size.

  1. Cliffy

Framework for interactive CLIs.

Build tools

  1. parcel

Blazing fast, zero config web app bundler.

  1. webpack

Packs modules and assets for the browser.

  1. rollup

Next-generation ES2015 module bundler.

  1. gulp

Streaming and fast build system that favors code over config.

  1. Broccoli

Fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions.

  1. Brunch

Front-end web app build tool with simple declarative config, fast incremental compilation, and an opinionated workflow.

  1. FuseBox

Fast build system that combines the power of webpack, JSPM and SystemJS, with first-class TypeScript support.

  1. pkg

Package your Node.js project into an executable.

Hardware

  1. johnny-five

Firmata based Arduino Framework.

  1. serialport

Access serial ports for reading and writing.

  1. usb

USB library.

  1. i2c-bus

I2C serial bus access.

  1. onoff

GPIO access and interrupt detection.

  1. spi-device

SPI serial bus access.

  1. pigpio

Fast GPIO, PWM, servo control, state change notification, and interrupt handling on the Raspberry Pi.

  1. gps

NMEA parser for handling GPS receivers.

Templating

  1. marko

HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags.

  1. nunjucks

Templating engine with inheritance, asynchronous control, and more (jinja2 inspired

  1. handlebars.js

Superset of Mustache templates which adds powerful features like helpers and more advanced blocks.

  1. EJS

Simple unopinionated templating language.

  1. Pug

High-performance template engine heavily influenced by Haml.

Web frameworks

  1. Fastify

Fast and low overhead web framework.

  1. Next.js

Minimalistic framework for server-rendered universal JavaScript web apps.

  1. Nuxt.js

Minimalistic framework for server-rendered Vue.js apps.

  1. Hapi

Framework for building applications and services.

  1. Micro

Minimalistic microservice framework with an async approach.

  1. 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.

  1. Express

Web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.

  1. Feathers

Microservice framework built in the spirit of Express.

  1. LoopBack

Powerful framework for creating REST APIs and easily connecting to backend data sources.

  1. Meteor

An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. *(You might like [awesome-meteor](https://github.com/Urigo/awesome-meteor

  1. Restify

Enables you to build correct REST web services.

  1. ThinkJS

Framework with ES2015+ support, WebSockets, REST API.

  1. ActionHero

Framework for making reusable & scalable APIs for TCP sockets, WebSockets, and HTTP clients.

  1. seneca

Toolkit for writing microservices.

  1. AdonisJs

A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.

  1. Moleculer

Fast & powerful microservices framework.

  1. Nest

Angular-inspired framework for building efficient and scalable server-side apps.

  1. TypeGraphQL

Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators.

  1. Tinyhttp

Modern and fast Express-like web framework.

  1. Marble.js

Functional reactive framework for building server-side apps, based on TypeScript and RxJS.

  1. Lad

Framework made by a former Express TC and Koa member that bundles web, API, job, and proxy servers.

  1. Ts.ED

Intituive TypeScript framework for building server-side apps on top of Express.js or Koa.js.

Documentation

  1. documentation.js

API documentation generator with support for ES2015+ and flow annotation.

  1. Docco

Documentation generator which produces an HTML document that displays your comments intermingled with your code.

  1. JSDoc

API documentation generator similar to JavaDoc or PHPDoc.

  1. Docusaurus

Documentation website generator that leverages React and Markdown, and comes with translation and versioning features.

Filesystem

  1. del

Delete files/folders using globs.

  1. globby

Glob files with support for multiple patterns.

  1. cpy

Copy files.

  1. chokidar

Filesystem watcher which stabilizes events from fs.watch and fs.watchFile as well as using native fsevents on macOS.

  1. find-up

Find a file by walking up parent directories.

  1. proper-lockfile

Inter-process and inter-machine lockfile utility.

  1. load-json-file

Read and parse a JSON file.

  1. write-json-file

Stringify and write JSON to a file atomically.

  1. fs-write-stream-atomic

Like `fs.createWriteStream(

  1. filenamify

Convert a string to a valid filename.

  1. lnfs

Force create symlinks like ln -fs.

  1. istextorbinary

Check if a file is text or binary.

  1. fs-jetpack

Completely redesigned file system API for convenience in everyday use.

  1. fs-extra

Extra methods for the fs module.

  1. pkg-dir

Find the root directory of an npm package.

  1. filehound

Flexible and fluent interface for searching the file system.

  1. move-file

Move a file, even works across devices.

  1. tempy

Get a random temporary file or directory path.

Control flow

  1. Promises

Promisify a callback-style function.

*   [delay](https://github.com/sindresorhus/delay)

Delay a promise a specified amount of time.

*   [promise-memoize](https://github.com/nodeca/promise-memoize)

Memoize promise-returning functions, with expire and prefetch.

*   [valvelet](https://github.com/lpinca/valvelet)

Limit the execution rate of a promise-returning function.

*   [p-map](https://github.com/sindresorhus/p-map)

Map over promises concurrently.

*   [More…](https://github.com/sindresorhus/promise-fun)
  1. Observables

Reactive programming.

*   [observable-to-promise](https://github.com/sindresorhus/awesome-observables)

Convert an Observable to a Promise.

*   [More…](https://github.com/sindresorhus/awesome-observables)
  1. Streams

Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.

Streams

  1. get-stream

Get a stream as a string or buffer.

  1. from2

Convenience wrapper for ReadableStream, inspired by through2.

  1. into-stream

Convert a buffer/string/array/object into a stream.

  1. duplexify

Turn a writeable and readable stream into a single streams2 duplex stream.

  1. pumpify

Combine an array of streams into a single duplex stream.

  1. peek-stream

Transform stream that lets you peek the first line before deciding how to parse it.

  1. binary-split

Newline (or any delimiter

  1. byline

Super-simple line-by-line Stream reader.

  1. first-chunk-stream

Transform the first chunk in a stream.

  1. pad-stream

Pad each line in a stream.

  1. multistream

Combine multiple streams into a single stream.

  1. stream-combiner2

Turn a pipeline into a single stream.

  1. readable-stream

Mirror of Streams2 and Streams3 implementations in core.

  1. through2-concurrent

Transform object streams concurrently.

Real-time

  1. µWebSockets

Highly scalable WebSocket server & client library.

  1. Socket.io

Enables real-time bidirectional event-based communication.

  1. Faye

Real-time client-server message bus, based on Bayeux protocol.

  1. SocketCluster

Scalable HTTP + WebSocket engine which can run on multiple CPU cores.

  1. Primus

An abstraction layer for real-time frameworks to prevent module lock-in.

  1. deepstream.io

Scalable real-time microservice framework.

  1. Kalm

Low-level socket router and middleware framework.

  1. MQTT.js

Client for MQTTPub-sub based messaging protocol for use on top of TCP/IP.

  1. rpc-websockets

JSON-RPC 2.0 implementation over WebSockets.

  1. Aedes

Barebone MQTT server that can run on any stream server.

Image

  1. sharp

The fastest module for resizing JPEG, PNG, WebP and TIFF images.

  1. image-type

Detect the image type of a Buffer/Uint8Array.

  1. gm

GraphicsMagick and ImageMagick wrapper.

  1. lwip

Lightweight image processor which does not require ImageMagick.

  1. pica

High quality & fast resize (lanczos3

  1. jimp

Image processing in pure JavaScript.

  1. probe-image-size

Get the size of most image formats without a full download.

  1. qrcode

QR code and bar code generator.

  1. ImageScript

Image processing in JavaScript, utilizing WebAssembly for performance.

Text

  1. iconv-lite

Convert character encodings.

  1. string-length

Get the real length of a stringby correctly counting astral symbols and ignoring ansi escape codes.

  1. camelcase

Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar.

  1. escape-string-regexp

Escape RegExp special characters.

  1. splice-string

Remove or replace part of a string like Array#splice.

  1. indent-string

Indent each line in a string.

  1. strip-indent

Strip leading whitespace from every line in a string.

  1. detect-indent

Detect the indentation of code.

  1. he

HTML entity encoder/decoder.

  1. i18n-node

Simple translation module with dynamic JSON storage.

  1. babelfish

i18n with very easy syntax for plurals.

  1. matcher

Simple wildcard matching.

  1. unhomoglyph

Normalize visually similar unicode characters.

  1. i18next

Internationalization framework.

  1. nanoid

Tiny, secure, URL-friendly, unique string ID generator.

  1. StegCloak

Conceal secrets within strings, in plain sight.

Number

  1. random-int

Generate a random integer.

  1. random-float

Generate a random float.

  1. unique-random

Generate random numbers that are consecutively unique.

  1. round-to

Round a number to a specific number of decimal places: 1.2341.2.

Math

  1. ndarray

Multidimensional arrays.

  1. mathjs

An extensive math library.

  1. math-clamp

Clamp a number.

  1. algebra

Algebraic structures.

  1. multimath

Core to create fast image math in WebAssembly and JS.

Date

  1. Luxon

Library for working with dates and times.

  1. date-fns

Modern date utility.

  1. Day.js

Immutable date library alternative to Moment.js.

  1. dateformat

Date formatting.

  1. tz-format

Format a date with timezone: 2015-11-30T10:40:35+01:00.

  1. cctz

Fast parsing, formatting, and timezone conversation for dates.

URL

  1. normalize-url

Normalize a URL.

  1. humanize-url

Humanize a URL: [https://sindresorhus.com](https://sindresorhus.com

  1. url-unshort

Expand shortened URLs.

  1. speakingurl

Generate a slug from a string with transliteration.

  1. linkify-it

Link patterns detector with full unicode support.

  1. url-pattern

Easier than regex string matching patterns for URLs and other strings.

  1. embedza

Create HTML snippets/embeds from URLs using info from oEmbed, Open Graph, meta tags.

Data validation

  1. joi

Object schema description language and validator for JavaScript objects.

  1. is-my-json-valid

JSON Schema validator that uses code generation to be extremely fast.

  1. property-validator

Easy property validation for Express.

  1. schema-inspector

JSON API sanitization and validation.

  1. ajv

The fastest JSON Schema validator. Supports v5, v6 and v7 proposals.

  1. Superstruct

Simple and composable way to validate data in JavaScript (and TypeScript

Parsing

  1. remark

Markdown processor powered by plugins.

  1. markdown-it

Markdown parser with 100% CommonMark support, extensions and syntax plugins.

  1. parse5

Fast full-featured spec compliant HTML parser.

  1. @parcel/css

A CSS parser, transformer, and minifier written in Rust.

  1. strip-json-comments

Strip comments from JSON.

  1. strip-css-comments

Strip comments from CSS.

  1. parse-json

Parse JSON with more helpful errors.

  1. URI.js

URL mutation.

  1. JSONStream

Streaming JSON.parse and stringify.

  1. neat-csv

Fast CSV parser. Callback interface for the above.

  1. csv-parser

Streaming CSV parser that aims to be faster than everyone else.

  1. PEG.js

Simple parser generator that produces fast parsers with excellent error reporting.

  1. x-ray

Web scraping utility.

  1. nearley

Simple, fast, powerful parsing for JavaScript.

  1. binary-extract

Extract a value from a buffer of JSON without parsing the whole thing.

  1. Stylecow

Parse, manipulate and convert modern CSS to make it compatible with all browsers. Extensible with plugins.

  1. js-yaml

Very fast YAML parser.

  1. xml2js

XML to JavaScript object converter.

  1. Jison

Friendly JavaScript parser generator. It shares genes with Bison, Yacc and family.

  1. google-libphonenumber

Parse, format, store and validate phone numbers.

  1. ref

Read/write structured binary data in Buffers.

  1. xlsx-populate

Read/write Excel XLSX.

  1. Chevrotain

Very fast and feature rich parser building toolkit for JavaScript.

  1. fast-xml-parser

Validate and parse XML.

Humanize

  1. pretty-bytes

Convert bytes to a human readable string: 13371.34 kB.

  1. pretty-ms

Convert milliseconds to a human readable string: 133700000015d 11h 23m 20s.

  1. ms

Tiny millisecond conversion utility.

  1. pretty-error

Errors with less clutter.

  1. read-art

Extract readable content from any page.

Compression

  1. yazl

Zip.

  1. yauzl

Unzip.

  1. Archiver

Streaming interface for archive generation, supporting ZIP and TAR.

  1. pako

High speed zlib port to pure js (deflate, inflate, gzip

  1. tar-stream

Streaming tar parser and generator. Also see [tar-fs](https://github.com/mafintosh/tar-fs

  1. decompress

Decompression module with support for tar, tar.gz and zip files out of the box.

Network

  1. get-port

Get an available port.

  1. ipify

Get your public IP address.

  1. getmac

Get the computer MAC address.

  1. DHCP

DHCP client and server.

  1. netcat

Netcat port in pure JS.

Database

  1. Drivers

PostgreSQL client. Pure JavaScript and native libpq bindings.

*   [Redis](https://github.com/luin/ioredis)

Redis client.

*   [LevelUP](https://github.com/Level/levelup)

LevelDB.

*   [MySQL](https://github.com/mysqljs/mysql)

MySQL client.

*   [couchdb-nano](https://github.com/apache/couchdb-nano)

CouchDB client.

*   [Aerospike](https://github.com/aerospike/aerospike-client-nodejs)

Aerospike client.

*   [Couchbase](https://github.com/couchbase/couchnode)

Couchbase client.

*   [MongoDB](https://github.com/mongodb/node-mongodb-native)

MongoDB driver.

  1. ODM / ORM

Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL, and more.

*   [Bookshelf](https://github.com/bookshelf/bookshelf)

ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.

*   [Mongoose](https://github.com/Automattic/mongoose)

Elegant MongoDB object modeling.

*   [Waterline](https://github.com/balderdashy/waterline)

Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.

*   [OpenRecord](https://github.com/PhilWaldmann/openrecord)

ORM for PostgreSQL, MySQL, SQLite3 and RESTful datastores. Similar to ActiveRecord.

*   [pg-promise](https://github.com/vitaly-t/pg-promise)

PostgreSQL framework for native SQL using promises.

*   [slonik](https://github.com/gajus/slonik)

PostgreSQL client with strict types, detailed logging and assertions.

*   [Objection.js](https://github.com/Vincit/objection.js)

Lightweight ORM built on the SQL query builder Knex.

*   [TypeORM](https://github.com/typeorm/typeorm)

ORM for PostgreSQL, MariaDB, MySQL, SQLite, and more.

*   [MikroORM](https://github.com/mikro-orm/mikro-orm)

TypeScript ORM based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite.

*   [Prisma](https://github.com/prisma/prisma)

Modern database access (ORM alternative

  1. Query builder

Query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.

  1. Other

Embedded persistent database written in JavaScript.

*   [Lowdb](https://github.com/typicode/lowdb)

Small JavaScript database powered by Lodash.

*   [Keyv](https://github.com/jaredwray/keyv)

Simple key-value storage with support for multiple backends.

*   [Finale](https://github.com/tommybananas/finale)

RESTful endpoint generator for your Sequelize models.

*   [database-js](https://github.com/mlaanderson/database-js)

Wrapper for multiple databases with a JDBC-like connection.

*   [Mongo Seeding](https://github.com/pkosiec/mongo-seeding)

Populate MongoDB databases with JavaScript and JSON files.

*   [@databases](https://github.com/ForbesLindesay/atdatabases)

Query PostgreSQL, MySQL and SQLite3 with plain SQL without risking SQL injection.

*   [pg-mem](https://github.com/oguimbal/pg-mem)

In-memory PostgreSQL instance for your tests.

Testing

  1. AVA

Futuristic test runner.

  1. Mocha

Feature-rich test framework making asynchronous testing simple and fun.

  1. nyc

Code coverage tool built on istanbul that works with subprocesses.

  1. tap

TAP test framework.

  1. tape

TAP-producing test harness.

  1. power-assert

Provides descriptive assertion messages through the standard assert interface.

  1. Mochify

TDD with Browserify, Mocha, PhantomJS and WebDriver.

  1. trevor

Run tests against multiple versions of Node.js without switching versions manually or pushing to Travis CI.

  1. loadtest

Run load tests for your web application, with an API for automation.

  1. Sinon.JS

Test spies, stubs and mocks.

  1. navit

PhantomJS / SlimerJS wrapper to simplify browser test scripting.

  1. Nock

HTTP mocking and expectations.

  1. intern

Code testing stack.

  1. toxy

Hackable HTTP proxy to simulate failure scenarios and network conditions.

  1. hook-std

Hook and modify stdout/stderr.

  1. testen

Run tests for multiple versions of Node.js locally with NVM.

  1. Nightwatch

Automated UI testing framework based on Selenium WebDriver.

  1. WebdriverIO

Automated testing based on the WebDriver protocol.

  1. Jest

Painless JavaScript testing.

  1. TestCafe

Automated browser testing.

  1. abstruse

Continuous Integration server.

  1. CodeceptJS

End-to-end testing.

  1. Puppeteer

Headless Chrome.

  1. Playwright

Headless Chromium, WebKit, and Firefox with a single API.

  1. nve

Run any command on multiple versions of Node.js locally.

  1. axe-core

Accessibility engine for automated Web UI testing.

  1. testcontainers-node

Provides lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.

Security

  1. upash

Unified API for all password hashing algorithms.

  1. themis

Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on.

  1. GuardRails

GitHub app that provides security feedback in pull requests.

  1. rate-limiter-flexible

Brute-force and DDoS attack protection.

  1. crypto-hash

Async non-blocking hashing.

  1. jose-simple

Encryption and decryption of data using the JOSE (JSON Object Signing and Encryption

Benchmarking

  1. Benchmark.js

Benchmarking library that supports high-resolution timers and returns statistically significant results.

Minifiers

  1. babel-minify

ES2015+ aware minifier based on the Babel toolchain.

  1. UglifyJS2

JavaScript minifier.

  1. clean-css

CSS minifier.

  1. minimize

HTML minifier.

  1. imagemin

Image minifier.

Authentication

  1. Passport

Simple, unobtrusive authentication.

  1. Grant

OAuth providers for Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel, and many more.

Authorization

  1. CASL

Isomorphic authorization for UI and API.

  1. node-casbin

Authorization library that supports access control models like ACL, RBAC and ABAC.

Email

  1. Nodemailer

The fastest way to handle email.

  1. emailjs

Send text/HTML emails with attachments to any SMTP server.

  1. email-templates

Create, preview, and send custom email templates.

  1. MJML

Markup language designed to reduce the pain of creating responsive emails.

Job queues

  1. bull

Persistent job and message queue.

  1. agenda

MongoDB-backed job scheduling.

  1. idoit

Redis-backed job queue engine with advanced job control.

  1. node-resque

Redis-backed job queue.

  1. rsmq

Redis-backed message queue.

  1. bee-queue

High-performance Redis-backed job queue.

  1. RedisSMQ

Simple high-performance Redis message queue with real-time monitoring.

  1. sqs-consumer

Build Amazon Simple Queue Service (SQS

  1. better-queue

Simple and efficient job queue when you cannot use Redis.

Node.js management

  1. n

Node.js version management.

  1. nave

Virtual Environments for Node.js.

  1. nodeenv

Node.js virtual environment compatible to Python’s virtualenv.

  1. nvm for Windows

Version management for Windows.

  1. nodenv

Version manager that is similar to Ruby’s rbenv. It supports auto version switching.

  1. fnm

Cross-platform Node.js version manager built in Rust.

Natural language processing

  1. retext

An extensible natural language system.

  1. franc

Detect the language of text.

  1. leven

Measure the difference between two strings using the Levenshtein distance algorithm.

  1. natural

Natural language facility.

  1. nlp.js

Building bots, with entity extraction, sentiment analysis, automatic language identify, and more.

Process management

  1. PM2

Advanced Process Manager.

  1. nodemon

Monitor for changes in your app and automatically restart the server.

  1. node-mac

Run scripts as a native Mac daemon and log to the console app.

  1. node-linux

Run scripts as native system service and log to syslog.

  1. node-windows

Run scripts as a native Windows service and log to the Event viewer.

  1. supervisor

Restart scripts when they crash or restart when a *.js file changes.

  1. Phusion Passenger

Friendly process manager that integrates directly into Nginx.

Automation

  1. robotjs

Desktop Automation: control the mouse, keyboard and read the screen.

  1. nut.js

Cross-platform native GUI automation / testing framework with image matching capabilities which integrates with Jest.

AST

  1. Acorn

Tiny, fast JavaScript parser.

  1. babel-parser

JavaScript parser used in Babel.

Static site generators

  1. DocPad

Static site generator with dynamic abilities and huge plugin ecosystem.

  1. docsify

Markdown documentation site generator with no statically built HTML files.

  1. Charge

Opinionated, zero-config static site generator using JSX and MDX.

Content management systems

  1. KeystoneJS

CMS and web application platform built on Express and MongoDB.

  1. ApostropheCMS

Content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB.

  1. Strapi

Content Management Framework (headless-CMS

  1. Factor

Vue.js dashboard framework and headless CMS.

  1. AdminBro

Auto-generated admin panel with CRUD for all your resources.

Forum

  1. nodeBB

Forum platform for the modern web.

Blogging

  1. Ghost

Simple, powerful publishing platform.

  1. Hexo

Fast, simple and powerful blogging framework.

Weird

  1. cows

ASCII cows.

  1. superb

Get superb like words.

  1. cat-names

Get popular cat names.

  1. dog-names

Get popular dog names.

  1. superheroes

Get superhero names.

  1. supervillains

Get supervillain names.

  1. cool-ascii-faces

Get some cool ascii faces.

  1. cat-ascii-faces

`₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=

  1. nerds

Get data from nerdy topics like Harry Potter, Star Wars, and Pokémon.

Serialization

  1. snappy

Native bindings for Google’s Snappy compression library.

  1. protobuf

Implementation of Protocol Buffers.

  1. compactr

Implementation of the Compactr protocol.

Miscellaneous

  1. execa

Better child_process.

  1. cheerio

Fast, flexible, and lean implementation of core jQuery designed specifically for the server.

  1. open

Opens stuff like websites, files, executables.

  1. hasha

Hashing made simple. Get the hash of a buffer/string/stream/file.

  1. dot-prop

Get a property from a nested object using a dot path.

  1. onetime

Only run a function once.

  1. mem

Memoize functionsan optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.

  1. strip-bom

Strip UTF-8 byte order mark (BOM

  1. os-locale

Get the system locale.

  1. ssh2

SSH2 client and server module.

  1. adit

SSH tunneling made simple.

  1. file-type

Detect the file type of a Buffer.

  1. Bottleneck

Rate limiter that makes throttling easy.

  1. ow

Function argument validation for humans.

  1. webworker-threads

Lightweight Web Worker API implementation with native threads.

  1. clipboardy

Access the system clipboard (copy/paste

  1. node-pre-gyp

Makes it easy to publish and install Node.js C++ addons from binaries.

  1. opencv

Bindings for OpenCV. The defacto computer vision library.

  1. dotenv

Load environment variables from .env file.

  1. semver

Semantic version parser.

  1. nodegit

Native bindings to Git.

  1. json-strictify

Safely serialize a value to JSON without data loss or going into an infinite loop.

  1. jsdom

JavaScript implementation of HTML and the DOM.

  1. @sindresorhus/is

Type check values.

  1. env-dot-prop

Get, set, or delete nested properties of process.env using a dot path.

  1. emittery

Simple and modern async event emitter.

  1. node-video-lib

Pure JavaScript library for working with MP4 and FLV video files and creating MPEG-TS chunks for HLS streaming.

  1. basic-ftp – FTP/FTPS client.
  2. cashify

Currency conversion.

  1. genepi

Automatically generate a native Node.js addon from C++ code.

  1. husky

Create Git hook scripts.

  1. patch-package

Make and preserve fixes to npm dependencies.

  1. editly

Declarative video editing API.