NodeJS

Contents

  • Contents

  • Official

  • Packages

    • Mad science

    • Command-line apps

    • Functional programming

    • HTTP

    • Debugging / Profiling

    • Logging

    • Command-line utilities

    • Build tools

    • Hardware

    • Templating

    • Web frameworks

    • Documentation

    • Filesystem

    • Control flow

    • Streams

    • Real-time

    • Image

    • Text

    • Number

    • Math

    • Date

    • URL

    • Data validation

    • Parsing

    • Humanize

    • Compression

    • Network

    • Database

    • Testing

    • Security

    • Benchmarking

    • Minifiers

    • Authentication

    • Authorization

    • Email

    • Job queues

    • Node.js management

    • Natural language processing

    • Process management

    • Automation

    • AST

    • Static site generators

    • Content management systems

    • Forum

    • Blogging

    • Weird

    • Serialization

    • Miscellaneous

  • Resources

    • Tutorials

    • Discovery

    • Articles

    • Newsletters

    • Videos

    • Books

    • Blogs

    • Courses

    • Cheatsheets

    • Tools

    • Community

    • Miscellaneous

  • Related lists

Official

Packages

Mad science

  • webtorrent - Streaming torrent client for Node.js and the browser.

  • peerflix - Streaming torrent client.

  • dat - Real-time replication and versioning for data sets.

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

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

  • peerwiki - All of Wikipedia on BitTorrent.

  • peercast - Stream a torrent video to Chromecast.

  • BitcoinJS - Clean, readable, proven Bitcoin library.

  • Bitcore - Pure and powerful Bitcoin library.

  • PDFKit - PDF generation library.

  • turf - Modular geospatial processing and analysis engine.

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

  • NodeOS - The first operating system powered by npm.

  • YodaOS - AI operating system.

  • Brain.js - Machine-learning framework.

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

  • Cytoscape.js - Graph theory (a.k.a. network) modeling and analysis.

  • Kadence - Kademlia distributed hash table.

  • seedshot - Temporary P2P screenshot sharing from your browser.

  • js-git - JavaScript implementation of Git.

  • skale - High performance distributed data processing engine.

  • xlsx - Pure JS Excel spreadsheet reader and writer.

  • isomorphic-git - Pure JavaScript implementation of Git.

Command-line apps

  • np - Better npm publish.

  • npm-name - Check a package name's availability on npm.

  • gh-home - Open the GitHub page of the repo in the current directory.

  • npm-home - Open the npm page of a package.

  • trash - Safer alternative to rm.

  • speed-test - Test your internet connection speed and ping.

  • emoj - Find relevant emoji from text on the command-line.

  • pageres - Capture website screenshots.

  • cpy - Copy files.

  • vtop - More better top, with nice charts.

  • empty-trash - Empty the trash.

  • is-up - Check whether a website is up or down.

  • is-online - Check if the internet connection is up.

  • public-ip - Get your public IP address.

  • clipboard-cli - Copy & paste on the terminal.

  • XO - Enforce strict code style using the JavaScript happiness style.

  • Standard - JavaScript Standard Style — One style to rule them all.

  • ESLint - The pluggable linting utility for JavaScript.

  • dev-time - Get the current local time of a GitHub user.

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

  • http-server - Simple, zero-config command-line HTTP server.

  • Live Server - Development HTTP-server with livereload capability.

  • bcat - Pipe command output to web browsers.

  • normit - Google Translate with speech synthesis in your terminal.

  • fkill - Fabulously kill processes. Cross-platform.

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

  • license-checker - Check licenses of your app's dependencies.

  • browser-run - Easily run code in a browser environment.

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

  • wifi-password - Get the current wifi password.

  • wallpaper - Change the desktop wallpaper.

  • brightness - Change the screen brightness.

  • torrent - Download torrents.

  • kill-tabs - Kill all Chrome tabs to improve performance, decrease battery usage, and save memory.

  • alex - Catch insensitive, inconsiderate writing.

  • pen - Live Markdown preview in the browser from your favorite editor.

  • subdownloader - Subtitle downloader for movies and TV series.

  • dark-mode - Toggle the macOS Dark Mode.

  • iponmap - IP location finder.

  • Jsome - Pretty prints JSON with configurable colors and indentation.

  • itunes-remote - Interactively control iTunes.

  • mobicon - Mobile app icon generator.

  • mobisplash - Mobile app splash screen generator.

  • diff2html-cli - Pretty git diff to HTML generator.

  • Cash - Cross-platform Unix shell commands in pure JavaScript.

  • trymodule - Try out npm packages in the terminal.

  • jscpd - Copy/paste detector for source code.

  • atmo - Server-side API mocking.

  • auto-install - Auto installs dependencies as you code.

  • lessmd - Markdown in the terminal.

  • cost-of-modules - Find out which dependencies are slowing you down.

  • localtunnel - Expose your localhost to the world.

  • svg-term-cli - Share terminal sessions via SVG.

  • gtop - System monitoring dashboard for the terminal.

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

  • carbon-now-cli - Beautiful images of your code — from right inside your terminal.

  • cash-cli - Convert between 170 currencies.

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

  • discharge - Easily deploy static websites to Amazon S3.

  • npkill - Easily find and remove old and heavy node_modules folders.

Functional programming

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

  • immutable - Immutable data collections.

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

  • Folktale - Suite of libraries for generic functional programming in JavaScript that allows you to write elegant, modular applications with fewer bugs, and more reuse.

  • Mout - Utility library with the biggest difference between other existing solutions is that you can choose to load only the modules/functions that you need, no extra overhead.

  • Bacon.js - Functional reactive programming.

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

  • Lazy.js - Utility library similar to lodash/Underscore but with lazy evaluation, which can translate to superior performance in many cases.

  • Kefir.js - Reactive library with focus on high performance and low memory usage.

HTTP

  • got - Nicer interface to the built-in http module.

  • gh-got - Convenience wrapper for got to interact with the GitHub API.

  • axios - Promise based HTTP client (works in the browser too).

  • wreck - HTTP Client Utilities.

  • download - Download and extract files effortlessly.

  • http-proxy - HTTP proxy.

  • superagent - HTTP request library.

  • node-fetch - window.fetch for Node.js.

  • flashheart - REST client.

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

  • cacheable-request - Wrap native HTTP requests with RFC compliant cache support.

  • gotql - GraphQL request library built on got.

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

  • smoke - File-based HTTP mock server with recording abilities.

Debugging / Profiling

  • ndb - Improved debugging experience, enabled by Chrome DevTools.

  • ironNode - Node.js debugger supporting ES2015 out of the box.

  • node-inspector - Debugger based on Blink Developer Tools.

  • debug - Tiny debugging utility.

  • why-is-node-running - Node.js is running but you don't know why?

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

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

  • stackman - Enhance an error stacktrace with code excerpts and other goodies.

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

  • 0x - Flamegraph profiling.

  • ctrace - Well-formatted and improved trace system calls and signals.

  • leakage - Write memory leak tests.

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

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

  • swagger-stats - Trace API calls and monitor API performance, health, and usage metrics.

  • NiM - Manages DevTools debugging workflow.

Logging

  • pino - Extremely fast logger inspired by Bunyan.

  • winston - Multi-transport async logging library.

  • console-log-level - The most simple logger imaginable with support for log levels and custom prefixes.

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

  • signale - Console logger.

  • consola - Console logger.

Command-line utilities

  • chalk - Terminal string styling done right.

  • meow - CLI app helper.

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

  • ora - Elegant terminal spinner.

  • get-stdin - Easier stdin.

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

  • Ink - React for interactive command-line apps.

  • listr - Terminal task list.

  • conf - Simple config handling for your app or module.

  • ansi-escapes - ANSI escape codes for manipulating the terminal.

  • log-symbols - Colored symbols for various log levels.

  • figures - Unicode symbols with Windows CMD fallbacks.

  • boxen - Create boxes in the terminal.

  • terminal-link - Create clickable links in the terminal.

  • terminal-image - Display images in the terminal.

  • string-width - Get the visual width of a string - the number of columns required to display it.

  • cli-truncate - Truncate a string to a specific width in the terminal.

  • first-run - Check if it's the first time the process is run.

  • blessed - Curses-like library.

  • Inquirer.js - Interactive command-line prompt.

  • yn - Parse yes/no like values.

  • cli-table3 - Pretty unicode tables.

  • drawille - Draw on the terminal with unicode braille characters.

  • update-notifier - Update notifications for your CLI app.

  • ascii-charts - ASCII bar chart in the terminal.

  • progress - Flexible ascii progress bar.

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

  • cli-cursor - Toggle the CLI cursor.

  • columnify - Create text-based columns suitable for console output. Supports cell wrapping.

  • cli-columns - Columnated unicode and ansi-safe text lists.

  • cfonts - Sexy ASCII fonts for the console.

  • multispinner - Multiple, simultaneous, individually controllable CLI spinners.

  • omelette - Shell autocompletion helper.

  • cross-env - Set environment variables cross-platform.

  • shelljs - Portable Unix shell commands.

  • sudo-block - Block users from running your app with root permissions.

  • loud-rejection - Make unhandled promise rejections fail loudly instead of the default silent fail.

  • sparkly - Generate sparklines ▁▂▃▅▂▇.

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

  • gradient-string - Beautiful color gradients in terminal output.

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

  • term-size - Reliably get the terminal window size.

  • Cliffy - Framework for interactive CLIs.

Build tools

  • parcel - Blazing fast, zero config web app bundler.

  • webpack - Packs modules and assets for the browser.

  • rollup - Next-generation ES2015 module bundler.

  • gulp - Streaming and fast build system that favors code over config.

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

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

  • Start - Functional task runner with shareable presets.

  • ygor - Promising task runner for when npm run isn't enough and everything else is too much.

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

  • pkg - Package your Node.js project into an executable.

Hardware

  • johnny-five - Firmata based Arduino Framework.

  • serialport - Access serial ports for reading and writing.

  • usb - USB library.

  • i2c-bus - I2C serial bus access.

  • onoff - GPIO access and interrupt detection.

  • spi-device - SPI serial bus access.

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

  • gps - NMEA parser for handling GPS receivers.

Templating

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

  • nunjucks - Templating engine with inheritance, asynchronous control, and more (jinja2 inspired).

  • handlebars.js - Superset of Mustache templates which adds powerful features like helpers and more advanced blocks.

  • EJS - Simple unopinionated templating language.

  • Pug - High-performance template engine heavily influenced by Haml.

Web frameworks

  • Hapi - Framework for building applications and services.

  • Koa - Framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.

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

  • Feathers - Microservice framework built in the spirit of Express.

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

  • Meteor - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. (You might like awesome-meteor)

  • Restify - Enables you to build correct REST web services.

  • ThinkJS - Framework with ES2015+ support, WebSockets, REST API.

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

  • Next.js - Minimalistic framework for server-rendered universal JavaScript web apps.

  • Nuxt.js - Minimalistic framework for server-rendered Vue.js apps.

  • seneca - Toolkit for writing microservices.

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

  • Hemera - Write reliable and fault-tolerant microservices with NATS.

  • Micro - Minimalistic microservice framework with an async approach.

  • Moleculer - Fast & powerful microservices framework.

  • Fastify - Fast and low overhead web framework.

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

  • Zeronode - Minimal building block for reliable and fault-tolerant microservices.

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

  • Tinyhttp - Modern and fast Express-like web framework.

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

Documentation

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

  • ESDoc - Documentation generator targeting ES2015, attaching test code and measuring documentation coverage.

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

  • JSDoc - API documentation generator similar to JavaDoc or PHPDoc.

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

Filesystem

  • del - Delete files/folders using globs.

  • globby - Glob files with support for multiple patterns.

  • cpy - Copy files.

  • rimraf - Recursively delete files like rm -rf.

  • make-dir - Recursively create directories like mkdir -p.

  • graceful-fs - Drop-in replacement for the fs module with various improvements.

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

  • find-up - Find a file by walking up parent directories.

  • proper-lockfile - Inter-process and inter-machine lockfile utility.

  • load-json-file - Read and parse a JSON file.

  • write-json-file - Stringify and write JSON to a file atomically.

  • fs-write-stream-atomic - Like fs.createWriteStream(), but atomic.

  • filenamify - Convert a string to a valid filename.

  • lnfs - Force create symlinks like ln -fs.

  • istextorbinary - Check if a file is text or binary.

  • fs-jetpack - Completely redesigned file system API for convenience in everyday use.

  • fs-extra - Extra methods for the fs module.

  • pkg-dir - Find the root directory of an npm package.

  • filehound - Flexible and fluent interface for searching the file system.

  • move-file - Move a file, even works across devices.

  • tempy - Get a random temporary file or directory path.

Control flow

  • Promises

    • Bluebird - Promise library with focus on innovative features and performance.

    • pify - Promisify a callback-style function.

    • delay - Delay a promise a specified amount of time.

    • promise-memoize - Memoize promise-returning functions, with expire and prefetch.

    • valvelet - Limit the execution rate of a promise-returning function.

    • p-map - Map over promises concurrently.

  • Observables

  • Streams

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

  • Callbacks

    • each-async - Async concurrent iterator like forEach.

    • async - Provides straight-forward, powerful functions for working with asynchronicity.

  • Channels

    • js-csp - Communicating sequential processes for JavaScript (like Clojurescript core.async, or Go).

Streams

  • through2 - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise.

  • from2 - Convenience wrapper for ReadableStream, inspired by through2.

  • get-stream - Get a stream as a string or buffer.

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

  • duplexify - Turn a writeable and readable stream into a single streams2 duplex stream.

  • pumpify - Combine an array of streams into a single duplex stream.

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

  • binary-split - Newline (or any delimiter) splitter stream.

  • byline - Super-simple line-by-line Stream reader.

  • first-chunk-stream - Transform the first chunk in a stream.

  • pad-stream - Pad each line in a stream.

  • multistream - Combine multiple streams into a single stream.

  • stream-combiner2 - Turn a pipeline into a single stream.

  • readable-stream - Mirror of Streams2 and Streams3 implementations in core.

  • through2-concurrent - Transform object streams concurrently.

Real-time

  • µWebSockets - Highly scalable WebSocket server & client library.

  • Socket.io - Enables real-time bidirectional event-based communication.

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

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

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

  • deepstream.io - Scalable real-time microservice framework.

  • Kalm - Low-level socket router and middleware framework.

  • MQTT.js - Client for MQTT - Pub-sub based messaging protocol for use on top of TCP/IP.

  • rpc-websockets - JSON-RPC 2.0 implementation over WebSockets.

  • Aedes - Barebone MQTT server that can run on any stream server.

Image

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

  • image-type - Detect the image type of a Buffer/Uint8Array.

  • gm - GraphicsMagick and ImageMagick wrapper.

  • lwip - Lightweight image processor which does not require ImageMagick.

  • pica - High quality & fast resize (lanczos3) in pure JS. Alternative to canvas drawImage(), when no pixelation allowed.

  • jimp - Image processing in pure JavaScript.

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

  • qrcode - QR code and bar code generator.

Text

  • iconv-lite - Convert character encodings.

  • string-length - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes.

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

  • escape-string-regexp - Escape RegExp special characters.

  • execall - Find multiple RegExp matches in a string.

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

  • indent-string - Indent each line in a string.

  • strip-indent - Strip leading whitespace from every line in a string.

  • detect-indent - Detect the indentation of code.

  • he - HTML entity encoder/decoder.

  • i18n-node - Simple translation module with dynamic JSON storage.

  • babelfish - i18n with very easy syntax for plurals.

  • matcher - Simple wildcard matching.

  • unhomoglyph - Normalize visually similar unicode characters.

  • i18next - Internationalization framework.

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

  • StegCloak - Conceal secrets within strings, in plain sight.

Number

  • random-int - Generate a random integer.

  • random-float - Generate a random float.

  • unique-random - Generate random numbers that are consecutively unique.

  • round-to - Round a number to a specific number of decimal places: 1.2341.2.

Math

Date

  • Luxon - Library for working with dates and times.

  • date-fns - Modern date utility.

  • Moment.js - Parse, validate, manipulate, and display dates.

  • Day.js - Immutable date library alternative to Moment.js.

  • dateformat - Date formatting.

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

  • cctz - Fast parsing, formatting, and timezone conversation for dates.

URL

Data validation

  • joi - Object schema description language and validator for JavaScript objects.

  • is-my-json-valid - JSON Schema validator that uses code generation to be extremely fast.

  • property-validator - Easy property validation for Express.

  • schema-inspector - JSON API sanitization and validation.

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

  • Superstruct - Simple and composable way to validate data in JavaScript (and TypeScript).

Parsing

  • remark - Markdown processor powered by plugins.

  • markdown-it - Markdown parser with 100% CommonMark support, extensions and syntax plugins.

  • parse5 - Fast full-featured spec compliant HTML parser.

  • strip-json-comments - Strip comments from JSON.

  • strip-css-comments - Strip comments from CSS.

  • parse-json - Parse JSON with more helpful errors.

  • URI.js - URL mutation.

  • PostCSS - CSS parser / stringifier.

  • JSONStream - Streaming JSON.parse and stringify.

  • neat-csv - Fast CSV parser. Callback interface for the above.

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

  • PEG.js - Simple parser generator that produces fast parsers with excellent error reporting.

  • x-ray - Web scraping utility.

  • nearley - Simple, fast, powerful parsing for JavaScript.

  • binary-extract - Extract a value from a buffer of JSON without parsing the whole thing.

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

  • js-yaml - Very fast YAML parser.

  • xml2js - XML to JavaScript object converter.

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

  • google-libphonenumber - Parse, format, store and validate phone numbers.

  • ref - Read/write structured binary data in Buffers.

  • xlsx-populate - Read/write Excel XLSX.

  • Chevrotain - Very fast and feature rich parser building toolkit for JavaScript.

  • fast-xml-parser - Validate and parse XML.

Humanize

  • pretty-bytes - Convert bytes to a human readable string: 13371.34 kB.

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

  • ms - Tiny millisecond conversion utility.

  • pretty-error - Errors with less clutter.

  • read-art - Extract readable content from any page.

Compression

  • yazl - Zip.

  • yauzl - Unzip.

  • Archiver - Streaming interface for archive generation, supporting ZIP and TAR.

  • pako - High speed zlib port to pure js (deflate, inflate, gzip).

  • tar-stream - Streaming tar parser and generator. Also see tar-fs.

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

Network

  • get-port - Get an available port.

  • ipify - Get your public IP address.

  • getmac - Get the computer MAC address.

  • DHCP - DHCP client and server.

  • netcat - Netcat port in pure JS.

Database

  • Drivers

  • ODM / ORM

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

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

    • Massive - PostgreSQL data access tool.

    • Mongoose - Elegant MongoDB object modeling.

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

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

    • pg-promise - PostgreSQL framework for native SQL using promises.

    • slonik - PostgreSQL client with strict types, detailed logging and assertions.

    • Objection.js - Lightweight ORM built on the SQL query builder Knex.

    • TypeORM - ORM for PostgreSQL, MariaDB, MySQL, SQLite, and more.

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

    • Prisma - Modern database access (ORM alternative). Auto-generated and type-safe query builder in TypeScript. Supports PostgreSQL, MySQL & SQLite.

  • Query builder

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

  • Other

    • NeDB - Embedded persistent database written in JavaScript.

    • Lowdb - Small JavaScript database powered by Lodash.

    • Keyv - Simple key-value storage with support for multiple backends.

    • Finale - RESTful endpoint generator for your Sequelize models.

    • database-js - Wrapper for multiple databases with a JDBC-like connection.

    • Mongo Seeding - Populate MongoDB databases with JavaScript and JSON files.

    • @databases - Query PostgreSQL, MySQL and SQLite3 with plain SQL without risking SQL injection.

    • pg-mem - In-memory PostgreSQL instance for your tests.

Testing

  • AVA - Futuristic test runner.

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

  • nyc - Code coverage tool built on istanbul that works with subprocesses.

  • tap - TAP test framework.

  • tape - TAP-producing test harness.

  • power-assert - Provides descriptive assertion messages through the standard assert interface.

  • Mochify - TDD with Browserify, Mocha, PhantomJS and WebDriver.

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

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

  • Sinon.JS - Test spies, stubs and mocks.

  • navit - PhantomJS / SlimerJS wrapper to simplify browser test scripting.

  • Nock - HTTP mocking and expectations.

  • intern - Code testing stack.

  • toxy - Hackable HTTP proxy to simulate failure scenarios and network conditions.

  • hook-std - Hook and modify stdout/stderr.

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

  • Nightwatch - Automated UI testing framework based on Selenium WebDriver.

  • WebdriverIO - Automated testing based on the WebDriver protocol.

  • Jest - Painless JavaScript testing.

  • TestCafe - Automated browser testing.

  • abstruse - Continuous Integration server.

  • CodeceptJS - End-to-end testing.

  • Puppeteer - Headless Chrome.

  • Playwright - Headless Chromium, WebKit, and Firefox with a single API.

  • nve - Run any command on multiple versions of Node.js locally.

  • axe-core - Accessibility engine for automated Web UI testing.

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

Security

  • upash - Unified API for all password hashing algorithms.

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

  • GuardRails - GitHub app that provides security feedback in pull requests.

  • rate-limiter-flexible - Brute-force and DDoS attack protection.

  • crypto-hash - Async non-blocking hashing.

  • jose-simple - Encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.

Benchmarking

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

  • matcha - Simplistic approach to benchmarking.

Minifiers

Authentication

  • Passport - Simple, unobtrusive authentication.

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

Authorization

  • CASL - Isomorphic authorization for UI and API.

  • node-casbin - Authorization library that supports access control models like ACL, RBAC and ABAC.

Email

  • Nodemailer - The fastest way to handle email.

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

  • email-templates - Create, preview, and send custom email templates.

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

Job queues

  • bull - Persistent job and message queue.

  • agenda - MongoDB-backed job scheduling.

  • idoit - Redis-backed job queue engine with advanced job control.

  • node-resque - Redis-backed job queue.

  • rsmq - Redis-backed message queue.

  • bee-queue - High-performance Redis-backed job queue.

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

  • sqs-consumer - Build Amazon Simple Queue Service (SQS) based apps without the boilerplate.

  • better-queue - Simple and efficient job queue when you cannot use Redis.

Node.js management

  • n - Node.js version management.

  • nave - Virtual Environments for Node.js.

  • nodeenv - Node.js virtual environment compatible to Python's virtualenv.

  • nvm for Windows - Version management for Windows.

  • nodenv - Version manager that is similar to Ruby's rbenv. It supports auto version switching.

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

Natural language processing

  • retext - An extensible natural language system.

  • franc - Detect the language of text.

  • leven - Measure the difference between two strings using the Levenshtein distance algorithm.

  • natural - Natural language facility.

  • nlp.js - Building bots, with entity extraction, sentiment analysis, automatic language identify, and more.

Process management

  • PM2 - Advanced Process Manager.

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

  • node-mac - Run scripts as a native Mac daemon and log to the console app.

  • node-linux - Run scripts as native system service and log to syslog.

  • node-windows - Run scripts as a native Windows service and log to the Event viewer.

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

  • Phusion Passenger - Friendly process manager that integrates directly into Nginx.

Automation

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

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

AST

  • Acorn - Tiny, fast JavaScript parser.

  • babel-parser - JavaScript parser used in Babel.

  • cherow - JavaScript parser with focus on performance and stability.

Static site generators

  • Wintersmith - Flexible, minimalistic, multi-platform static site generator.

  • Assemble - Static site generator for Node.js, Grunt.js, and Yeoman.

  • DocPad - Static site generator with dynamic abilities and huge plugin ecosystem.

  • Phenomic - Modern static website generator based on the React and Webpack ecosystem.

  • docsify - Markdown documentation site generator with no statically built HTML files.

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

Content management systems

  • KeystoneJS - CMS and web application platform built on Express and MongoDB.

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

  • Strapi - Content Management Framework (headless-CMS) to build powerful APIs.

  • Tipe - Developer-first content management system with GraphQL and REST API from a schema file.

  • Factor - Vue.js dashboard framework and headless CMS.

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

Forum

  • nodeBB - Forum platform for the modern web.

Blogging

  • Ghost - Simple, powerful publishing platform.

  • Hexo - Fast, simple and powerful blogging framework.

Weird

Serialization

  • snappy - Native bindings for Google's Snappy compression library.

  • protobuf - Implementation of Protocol Buffers.

  • compactr - Implementation of the Compactr protocol.

Miscellaneous

  • execa - Better child_process.

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

  • Electron - Build cross platform desktop apps with web technologies. (You might like awesome-electron)

  • open - Opens stuff like websites, files, executables.

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

  • dot-prop - Get a property from a nested object using a dot path.

  • onetime - Only run a function once.

  • mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.

  • import-fresh - Import a module while bypassing the cache.

  • strip-bom - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.

  • os-locale - Get the system locale.

  • ssh2 - SSH2 client and server module.

  • adit - SSH tunneling made simple.

  • import-lazy - Import a module lazily.

  • file-type - Detect the file type of a Buffer.

  • Bottleneck - Rate limiter that makes throttling easy.

  • ow - Function argument validation for humans.

  • webworker-threads - Lightweight Web Worker API implementation with native threads.

  • clipboardy - Access the system clipboard (copy/paste).

  • node-pre-gyp - Makes it easy to publish and install Node.js C++ addons from binaries.

  • opencv - Bindings for OpenCV. The defacto computer vision library.

  • dotenv - Load environment variables from .env file.

  • remote-git-tags - Get tags from a remote git repo.

  • semver - Semantic version parser.

  • Faker.js - Generate massive amounts of fake data.

  • nodegit - Native bindings to Git.

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

  • resolve-from - Resolve the path of a module like require.resolve() but from a given path.

  • simplecrawler - Event driven web crawler.

  • jsdom - JavaScript implementation of HTML and the DOM.

  • hypernova - Server-side rendering your JavaScript views.

  • @sindresorhus/is - Type check values.

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

  • emittery - Simple and modern async event emitter.

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

  • basic-ftp – FTP/FTPS client.

  • cashify - Currency conversion.

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

  • husky - Create Git hook scripts.

  • patch-package - Make and preserve fixes to npm dependencies.

  • editly - Declarative video editing API.

Resources

Tutorials

  • Node.js Best Practices - Summary and curation of the top-ranked content on Node.js best practices, available in multiple languages.

  • Nodeschool - Learn Node.js with interactive lessons.

  • The Art of Node - An introduction to Node.js.

  • stream-handbook - How to write Node.js programs with streams.

  • module-best-practices - Some good practices when writing new npm modules.

  • The Node Way - An entire philosophy of Node.js best practices and guiding principles exists for writing maintainable modules, scalable applications, and code that is actually pleasant to read.

  • You Don't Know Node.js - Introduction to Node.js core features and asynchronous JavaScript.

  • Portable Node.js guide - Practical guide on how to write portable/cross-platform Node.js code.

  • Build a real web app with no frameworks - A set of video tutorials/livestreams to help you build and deploy a real, live web app using a handful of simple libraries and the core Node.js modules.

Discovery

Articles

Newsletters

Videos

Books

Blogs

  • webapplog.com - Blog posts on Node.js and JavaScript from the author of Practical Node.js and Pro Express.js Azat Mardan.

Courses

Cheatsheets

  • Stream FAQs - Answering common questions about streams, covering pagination, events, and more.

  • Strong Node.js - Checklist for source code security analysis of a Node.js web service.

Tools

  • OctoLinker - Chrome extension that linkifies dependencies in package.json, .js, .jsx, .coffee and .md files on GitHub.

  • npm-hub - Chrome extension to display npm dependencies at the bottom of a repo's readme.

  • RunKit - Embed a Node.js environment on any website.

  • github-npm-stats - Chrome extension that displays npm download stats on GitHub.

  • npm semver calculator - Visually explore what versions of a package a semver range matches.

  • CodeSandbox - Online IDE and prototyping.

Community

Miscellaneous

Last updated