Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

awesome-nodejs

:zap: Delightful Node.js packages and resources
https://github.com/sindresorhus/awesome-nodejs

Last synced: 3 days ago
JSON representation

  • Packages

    • Command-line apps

      • taskbook - Tasks, boards & notes for the command-line habitat.
      • lessmd - Markdown in the terminal.
      • npkill - Easily find and remove old and heavy node_modules folders.
      • cpy - Copy files.
      • 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.
      • pageres - Capture website screenshots.
      • 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.
      • ESLint - The pluggable linting utility for JavaScript.
      • 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.
      • wallpaper - Change the desktop wallpaper.
      • pen - Live Markdown preview in the browser from your favorite editor.
      • dark-mode - Toggle the macOS Dark Mode.
      • Jsome - Pretty prints JSON with configurable colors and indentation.
      • mobicon - Mobile app icon generator.
      • mobisplash - Mobile app splash screen generator.
      • diff2html-cli - Pretty git diff to HTML generator.
      • 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.
      • 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.
    • HTTP

      • superagent - HTTP request library.
      • cacheable-request - Wrap native HTTP requests with RFC compliant cache support.
      • got - Nicer interface to the built-in `http` module.
      • undici - High performance HTTP client written from scratch with zero dependencies.
      • ky-universal - Universal HTTP client based on Fetch.
      • node-fetch - `window.fetch` for Node.js.
      • axios - Promise based HTTP client (works in the browser too).
      • superagent - HTTP request library.
      • 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](https://github.com/sindresorhus/got).
      • global-agent - Global HTTP/HTTPS proxy agent that is configurable using environment variables.
      • smoke - File-based HTTP mock server with recording abilities.
      • purest - REST client.
    • Mad science

      • stackgl - Open software ecosystem for WebGL, built on top of browserify and npm.
      • Pipcook - Front-end algorithm framework to create a machine learning pipeline.
      • ipfs - Distributed file system that seeks to connect all computing devices with the same system of files.
      • peerwiki - All of Wikipedia on BitTorrent.
      • peercast - Stream a torrent video to Chromecast.
      • BitcoinJS - Clean, readable, proven Bitcoin library.
      • webtorrent - Streaming torrent client for Node.js and the browser.
      • peerflix - Streaming torrent client.
      • 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.
      • js-git - JavaScript implementation of Git.
      • xlsx - Pure JS Excel spreadsheet reader and writer.
      • isomorphic-git - Pure JavaScript implementation of Git.
    • Command-line utilities

      • log-symbols - Colored symbols for various log levels.
      • figures - Unicode symbols with Windows CMD fallbacks.
      • cross-env - Set environment variables cross-platform.
      • shelljs - Portable Unix shell commands.
      • oclif - CLI framework complete with parser, automatic documentation, testing, and plugins.
      • 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.
      • listr2 - Terminal task list.
      • conf - Simple config handling for your app or module.
      • ansi-escapes - ANSI escape codes for manipulating the terminal.
      • 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.
      • 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.
      • 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.
      • 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.
      • sudo-block - Block users from running your app with root permissions.
      • 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.
      • terminal-size - Reliably get the terminal window size.
      • Cliffy - Framework for interactive CLIs.
      • zx - Write shell scripts JavaScript.
    • Web frameworks

      • Nuxt.js - Minimalistic framework for server-rendered Vue.js apps.
      • LoopBack - Powerful framework for creating REST APIs and easily connecting to backend data sources.
      • Nest - Angular-inspired framework for building efficient and scalable server-side apps.
      • Tinyhttp - Modern and fast Express-like web framework.
      • Fastify - Fast and low overhead web framework.
      • Next.js - Minimalistic framework for server-rendered universal JavaScript web apps.
      • Nuxt.js - Minimalistic framework for server-rendered Vue.js apps.
      • Hapi - Framework for building applications and services.
      • Micro - Minimalistic microservice framework with an async approach.
      • 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](https://github.com/Urigo/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.
      • seneca - Toolkit for writing microservices.
      • AdonisJs - A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.
      • Moleculer - Fast & powerful microservices framework.
      • Nest - Angular-inspired framework for building efficient and scalable server-side apps.
      • 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.
      • Lad - Framework made by a former Express TC and Koa member that bundles web, API, job, and proxy servers.
      • Ts.ED - Intituive TypeScript framework for building server-side apps on top of Express.js or Koa.js.
      • Hono - Small and fast web framework.
    • Filesystem

      • chokidar - Filesystem watcher which stabilizes events from `fs.watch` and `fs.watchFile` as well as using native `fsevents` on macOS.
      • fs-extra - Extra methods for the `fs` module.
      • del - Delete files/folders using globs.
      • globby - Glob files with support for multiple patterns.
      • 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.
      • istextorbinary - Check if a file is text or binary.
      • fs-jetpack - Completely redesigned file system API for convenience in everyday use.
      • 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.
    • Image

      • jimp - Image processing in pure JavaScript.
      • sharp - The fastest module for resizing JPEG, PNG, WebP and TIFF images.
      • image-type - Detect the type of an image.
      • image-dimensions - Get the dimensions of an image.
      • 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.
      • qrcode - QR code and bar code generator.
      • ImageScript - Image processing in JavaScript, utilizing WebAssembly for performance.
    • Data validation

      • joi - Object schema description language and validator for JavaScript objects.
      • ajv - The fastest JSON Schema validator. Supports v5, v6 and v7 proposals.
      • 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).
      • yup - Object schema validation.
      • zod - TypeScript-first schema validation with static type inference.
      • joi - Object schema description language and validator for JavaScript objects.
    • Parsing

      • Chevrotain - Very fast and feature rich parser building toolkit for JavaScript.
      • 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.
      • 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.
      • @parcel/css - A CSS parser, transformer, and minifier written in Rust.
    • Database

      • Redis - Redis client.
      • slonik - PostgreSQL client with strict types, detailed logging and assertions.
      • MikroORM - TypeScript ORM based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite.
      • pg-mem - In-memory PostgreSQL instance for your tests.
      • Redis - Redis client.
      • PostgreSQL - PostgreSQL client. Pure JavaScript and native libpq bindings.
      • LevelUP - LevelDB.
      • MySQL - MySQL client.
      • couchdb-nano - CouchDB client.
      • Aerospike - Aerospike client.
      • Couchbase - Couchbase client.
      • MongoDB - MongoDB driver.
      • Sequelize - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL, and more.
      • Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
      • 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.
      • Drizzle ORM - TypeScript ORM that supports various databases such as PostgreSQL.
      • Knex - Query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.
      • 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.
      • Redis - Redis client.
    • Testing

      • tap - TAP test framework.
      • tape - TAP-producing test harness.
      • Jest - Painless JavaScript 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.
      • 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.
      • tap - TAP test framework.
    • Security

      • 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.
      • upash - Unified API for all password hashing algorithms.
      • 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.
    • Node.js management

      • nvm for Windows - Version management for Windows.
      • n - Node.js version management.
      • nave - Virtual Environments for Node.js.
      • nodeenv - Node.js virtual environment compatible to Python's virtualenv.
      • 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.
    • Process management

      • node-windows - Run scripts as a native Windows service and log to the Event viewer.
      • 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.
      • supervisor - Restart scripts when they crash or restart when a `*.js` file changes.
      • Phusion Passenger - Friendly process manager that integrates directly into Nginx.
    • AST

      • babel-parser - JavaScript parser used in Babel.
      • Acorn - Tiny, fast JavaScript parser.
    • Content management systems

      • AdminBro - Auto-generated admin panel with CRUD for all your resources.
      • 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.
      • AdminBro - Auto-generated admin panel with CRUD for all your resources.
      • Graphweaver - CMS and headless GraphQL API.
      • Factor - Vue.js dashboard framework and headless CMS.
    • Miscellaneous

      • execa - Better `child_process`.
      • open - Opens stuff like websites, files, executables.
      • mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.
      • clipboardy - Access the system clipboard (copy/paste).
      • cashify - Currency conversion.
      • mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.
      • cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
      • 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.
      • 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.
      • file-type - Detect the file type of a Buffer.
      • Bottleneck - Rate limiter that makes throttling easy.
      • webworker-threads - Lightweight Web Worker API implementation with native threads.
      • 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.
      • semver - Semantic version parser.
      • nodegit - Native bindings to Git.
      • json-strictify - Safely serialize a value to JSON without data loss or going into an infinite loop.
      • jsdom - JavaScript implementation of HTML and the DOM.
      • @sindresorhus/is - Type check values.
      • env-dot-prop - Get, set, or delete nested properties of process.env using a dot path.
      • 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.
      • wild-wild-path - Object property paths with wildcards and regexes.
      • uint8array-extras - Useful utilities for working with Uint8Array and Buffer.
      • mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.
    • 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.
      • 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.
      • RxJS - Functional reactive library for transforming, composing, and querying various kinds of data.
      • Kefir.js - Reactive library with focus on high performance and low memory usage.
    • Debugging / Profiling

      • 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.
      • dats - Minimalistic and zero-dependencies [StatsD](https://github.com/statsd/statsd) client.
    • 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.
      • consola - Console logger.
    • 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.
      • 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.
      • Vite - Front-end build tool with hot module replacement and static asset bundling.
    • 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.
      • modbus-serial - A pure JavaScript implementation of MODBUS-RTU (serial and TCP).
    • 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.
    • Documentation

      • documentation.js - API documentation generator with support for ES2015+ and flow annotation.
      • 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.
    • Control flow

      • 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.
      • More…
      • RxJS - Reactive programming.
      • observable-to-promise - Convert an Observable to a Promise.
      • More…
      • Highland.js - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
    • Streams

      • get-stream - Get a stream as a string or buffer.
      • from2 - Convenience wrapper for ReadableStream, inspired by `through2`.
      • 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.
      • 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.
      • readable-stream - Mirror of Streams2 and Streams3 implementations in core.
      • through2-concurrent - Transform object streams concurrently.
      • binary-split - Newline (or any delimiter) splitter stream.
    • 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.
    • 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.
      • 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.234` → `1.2`.
    • Math

      • ndarray - Multidimensional arrays.
      • mathjs - An extensive math library.
      • math-clamp - Clamp a number.
      • algebra - Algebraic structures.
      • multimath - Core to create fast image math in WebAssembly and JS.
    • Date

      • Luxon - Library for working with dates and times.
      • date-fns - Modern date utility.
      • 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

      • normalize-url - Normalize a URL.
      • humanize-url - Humanize a URL: https://sindresorhus.com → sindresorhus.com.
      • url-unshort - Expand shortened URLs.
      • speakingurl - Generate a slug from a string with transliteration.
      • linkify-it - Link patterns detector with full unicode support.
      • url-pattern - Easier than regex string matching patterns for URLs and other strings.
      • embedza - Create HTML snippets/embeds from URLs using info from oEmbed, Open Graph, meta tags.
    • Humanize

      • pretty-bytes - Convert bytes to a human readable string: `1337` → `1.34 kB`.
      • pretty-ms - Convert milliseconds to a human readable string: `1337000000` → `15d 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](https://github.com/mafintosh/tar-fs).
    • 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.
    • Benchmarking

      • Benchmark.js - Benchmarking library that supports high-resolution timers and returns statistically significant results.
    • 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.
      • bullmq - Persistent job and message queue.
      • bree - Job task scheduler with worker threads, cron, date, and human syntax support.
    • Cross-platform integration

      • napi-rs - Framework for building compiled Node.js add-ons in Rust via Node-API.
      • Neon - Rust bindings for writing safe and fast native Node.js modules.
      • Edge.js - Run .NET and Node.js code in the same process on Windows, macOS, and Linux.
      • DotNetJS - Consume .NET libraries in Node.js using this .NET interoperability layer.
    • 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.
    • 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.
    • Static site generators

      • DocPad - Static site generator with dynamic abilities and huge plugin ecosystem.
      • docsify - Markdown documentation site generator with no statically built HTML files.
      • Charge - Opinionated, zero-config static site generator using JSX and MDX.
    • 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.
  • Official

  • Package Manager

    • Miscellaneous

      • npm - The default package manager.
      • pnpm - Disk space efficient package manager.
      • yarn - Alternative package manager.
      • bun - All-in-one toolkit for JavaScript and TypeScript apps.
  • Resources