Node.js

repo: sindresorhus/awesome-nodejs
category: Platforms related: JavaScript · React · Next.js · Docker


Contents

Official

Packages

Mad science

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

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.

HTTP

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

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

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.
  • listr2 - 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.
  • 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.
  • cross-env - Set environment variables cross-platform.
  • shelljs - Portable Unix shell commands.
  • 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 in JavaScript.

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.

Web frameworks

  • 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)
  • 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 - Intuitive TypeScript framework for building server-side apps on top of Express.js or Koa.js.
  • Hono - Small and fast web framework.

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.

Filesystem

  • del - Delete files/folders using globs.
  • globby - Glob files with support for multiple patterns.
  • 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](https://github.com/sindresorhus/load-json-file) - Read and parse a JSON file.
  • [write-json-file](https://github.com/sindresorhus/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.
  • fs-extra - Extra methods for the fs module.
  • package-directory - 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

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.
  • 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.
  • 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 type of an image.
  • image-dimensions - Get the dimensions of an image.
  • 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.

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

Math

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

Data validation

  • joi - Object schema description language and validator for JavaScript objects.
  • [is-my-json-valid](https://github.com/mafintosh/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.

Parsing

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

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


truncated — full list on GitHub

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?