xudafeng / awesome-nodejs-1

A awesome Node.js packages and resources

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

English | 简体中文

Table of contents

Official

Repository

Text

  • Common

    • dedent - ES6 string tag that strips indentation from multi-line strings.
    • camelcase - Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar.
    • string-width - Get the visual width of a string - the number of columns required to display it.
    • decamelize - Convert a camelized string into a lowercased one with a custom separator: unicornRainbow → unicorn_rainbow
    • detect-indent - Detect the indentation of code.
    • string-length - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes.
    • strip-indent - Strip leading whitespace from every line in a string.
    • strip-bom - Strip UTF-8 byte order mark (BOM) from a string.
    • indent-string - Indent each line in a string.
    • redent - Strip redundant indentation and indent the string.
    • normalize-newline - Normalize the newline characters in a string to \n.
    • min-indent - Get the shortest leading whitespace from lines in a string.
    • trim-right - Similar to String#trim() but removes only whitespace on the right.
    • splice-string - Remove or replace part of a string like Array#splice.
  • i18n

    • i18next - Internationalization framework.
    • i18n-node - Simple translation module with dynamic JSON storage.
    • babelfish - human friendly i18n for javascript (node.js + browser).
  • Unique Id

    • nanoid - Tiny, secure, URL-friendly, unique string ID generator.
    • uuid - Generate RFC-compliant UUIDs in JavaScript.
    • shortid - Short id generator. Url-friendly. Non-predictable. Cluster-compatible.
    • ulid - Universally Unique Lexicographically Sortable Identifier.
    • pure-uuid - Pure JavaScript Based Universally Unique Identifiers (UUID).
  • Encode/Decode

    • he - HTML entity encoder/decoder.
    • iconv-lite - Convert character encodings.
    • jschardet - Character encoding auto-detection in JavaScript (port of python's chardet)
  • RegExp/Glob

    • path-to-regexp - Turn a path string such as /user/:name into a regular expression.
    • minimatch - A minimal matching utility.
    • micromatch - Highly optimized wildcard and glob matching library. Faster, drop-in replacement to minimatch and multimatch. Used by webpack, babel core, yarn, jest, browser-sync, documentation.js, stylelint, nyc, ava, and many others!
    • matcher - Simple wildcard matching.
    • escape-string-regexp - Escape RegExp special characters.
    • multimatch - Extends minimatch.match() with support for multiple patterns.
    • execall - Find multiple RegExp matches in a string.
  • Comparison

    • jsdiff - A javascript text differencing implementation.
    • recursive-diff - A JavaScript library to find diff between two JavaScript Objects. Support for Array, Number, Date and other primitive data types.
  • Other

    • StegCloak - Conceal secrets within strings, in plain sight.
    • unhomoglyph - Normalize visually similar unicode characters.

Number

  • Numeral.js - A javascript library for formatting and manipulating numbers.
  • decimal.js - An arbitrary-precision Decimal type for JavaScript.
  • big.js - A small, fast JavaScript library for arbitrary-precision decimal arithmetic.
  • round-to - Round a number to a specific number of decimal places: 1.2341.2.
  • unique-random - Generate random numbers that are consecutively unique.
  • random-int - Generate a random integer.
  • random-float - Generate a random float.

Math

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

Date & Time

  • moment - Parse, validate, manipulate, and display dates in javascript.
  • dayjs - Day.js 2KB immutable date-time library alternative to Moment.js with the same modern API.
  • date-fns - Modern JavaScript date utility library.
  • luxon - Library for working with dates and times.
  • timeago.js - 🕗 ⌛ timeago.js is a tiny(2.0 kb) library used to format date with *** time ago statement.
  • ms - Tiny millisecond conversion utility.
  • dateformat - A node.js package for Steven Levithan's excellent dateFormat() function.
  • pretty-ms - Convert milliseconds to a human readable string: 133700000015d 11h 23m 20s
  • strftime - Strftime for JavaScript.
  • date-utils - Date Pollyfills for Node.js and Browser.

URL

  • URI.js - Javascript URL mutation library.
  • qs - Querystring parser with nesting support.
  • query-string - Parse and stringify URL query strings.
  • url-parse - Small footprint URL parser that works seamlessly across Node.js and browser environments.
  • normalize-url - Normalize a URL.
  • url-pattern - Easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.
  • native-url - Node's url module implemented using the built-in URL API.
  • url-join - Join all arguments together and normalize the resulting url.
  • humanize-url - Humanize a URL: https://sindresorhus.com → sindresorhus.com.
  • parseurl - Parse a url with memoization.
  • file-url - Convert a file path to a file URL: unicorn.jpgfile:///Users/sindresorhus/unicorn.jpg
  • encodeurl - Encode a URL to a percent-encoded form, excluding already-encoded sequences.

JSON

Image

  • sharp - The fastest module for resizing JPEG, PNG, WebP and TIFF images.
  • jimp - Image processing in pure JavaScript.
  • gm - GraphicsMagick and ImageMagick wrapper.
  • qrcode - QR code and bar code generator.
  • pica - High quality & fast resize (lanczos3) in pure JS. Alternative to canvas drawImage(), when no pixelation allowed.
  • lwip - Lightweight image processor which does not require ImageMagick.
  • probe-image-size - Get the size of most image formats without a full download.
  • omggif - JavaScript implementation of a GIF 89a encoder and decoder.
  • jpeg-js - A pure javascript JPEG encoder and decoder for node.js.
  • pngjs - Simple PNG encoder/decoder.
  • get-pixels - Reads an image into an ndarray.
  • image-type - Detect the image type of a Buffer/Uint8Array.
  • node-bitmap - Pure javascript Bitmap library.

Color

  • chroma - JavaScript library for all kinds of color manipulations.
  • rgbaster - 🎨 A simple library for extracting dominant colors from images.
  • onecolor - An OO-based JavaScript color parser/computation toolkit with support for RGB, HSV, HSL, CMYK, and alpha channels. Conversion between color spaces occurs implicitly, and all methods return new objects rather than mutating existing instances. Works in the browser and node.js.

Crypto

  • crypto-js - JavaScript library of crypto standards.
  • bcrypt - Bcrypt for NodeJs.
  • jsencrypt - A Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.
  • bcrypt.js - Optimized bcrypt in plain JavaScript with zero dependencies.
  • node-rsa - Node.js RSA library.
  • aes-js - A pure JavaScript implementation of the AES block cipher and all common modes of operation for node.js or web browsers.
  • node-md5 - A JavaScript function for hashing messages with MD5.
  • crypto-hash - Tiny hashing module that uses the native crypto API in Node.js and the browser.
  • sha.js - Streamable SHA hashes in pure javascript.
  • hash.js - Hash functions in pure javascript.
  • pbkdf2 - PBKDF2 with any supported hashing algorithm in Node.

Streams

  • event-stream - EventStream is like functional programming meets IO.
  • through2 - Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise.
  • JSONStream - streaming JSON.parse and stringify.
  • mississippi - A collection of useful stream utility modules for writing better code using streams.
  • readable-stream - Node-core streams for userland.
  • pump - pipe streams together and close all of them if one of them closes.
  • concat-stream - writable stream that concatenates strings or data and calls a callback with the result.
  • stream-json - stream-json is a collection of node.js stream components for creating custom standard-compliant JSON processors, which requires a minimal memory footprint. It can parse JSON files far exceeding available memory. Even individual primitive data items (keys, strings, and numbers) can be streamed piece-wise. Streaming SAX-inspired event-based API is included as well.
  • split - Break up a stream and reassemble it so that each line is a chunk. matcher may be a String, or a RegExp.
  • tar-stream - tar-stream is a streaming tar parser and generator.
  • node-byline - Line-by-line Stream reader.
  • ndjson - streaming line delimited json parser + serializer](https://github.com/mcollina/cloneable-readable).
  • oppressor - streaming http compression response negotiator.
  • multistream - A stream that emits multiple other streams one after another (streams2).
  • get-stream - Get a stream as a string, buffer, or array.
  • node-stream-buffer - Readable and Writable Streams that use backing Buffers.
  • split2 - Split streams3 style.
  • fstream - Advanced FS Streaming for Node.
  • pumpify - Combine an array of streams into a single duplex stream using pump and duplexify.
  • progress-stream - Read the progress of a stream.
  • merge-stream - Merge multiple streams into one interleaved stream.
  • duplexify - Turn a writeable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input.
  • into-stream - Convert a buffer/string/array/object into a stream.
  • merge2 - Merge multiple streams into one stream in sequence or parallel.
  • end-of-stream - Call a callback when a readable/writable/duplex stream has completed or failed.
  • stream-to-promise - Convert streams (readable or writable) to promises.
  • node-streamifier - Converts a Buffer/String to a readable stream.
  • stream-spec - executable specification for Stream (make testing streams easy).
  • from2 - Convenience wrapper for ReadableStream, inspired by through2.
  • dmap-stream - refactored out of event-stream.
  • emit-stream - turn event emitters into streams and streams into event emitters.
  • stream-combiner - Turn a pipeline into a single stream. Combine returns a stream that writes to the first stream and reads from the last stream.
  • duplexer - Creates a duplex stream.
  • promise-streams - A collection of node.js streams that work well with promises (through, map, reduce, etc...).
  • binary-split - A fast newline (or any delimiter) splitter stream.
  • stream-combiner2 - stream-combiner for streams3.
  • through2-concurrent - Simple Node.JS stream (streams2) Transform that runs the transform functions concurrently (with a set max concurrency).
  • cloneable-readable - Clone a Readable stream, safely.
  • destroy - destroy a stream if possible.
  • peek-stream - Transform stream that lets you peek the first line before deciding how to parse it.
  • resumer - a through stream that starts paused and resumes on the next tick.
  • stream-each - Iterate all the data in a stream.
  • flush-write-stream - A write stream constructor that supports a flush function that is called before finish is emitted.
  • multi-write-stream - Create a writable stream that writes to multiple other writeable streams.
  • first-chunk-stream - Buffer and transform the n first bytes of a stream.
  • multi-read-stream - Readable stream that reads from multiple readable streams at the same time.
  • node-stream-reduce - Reduce stream data to a single value.
  • stream-shift - Returns the next buffer/object in a stream's readable queue.
  • stream-assert - Assertion library for streams.
  • stream-from-promise - Create streams from promises.
  • stromjs - Dependency-free stream utils. The Lodash of streams.
  • exec-stream - stream to a child process.
  • stream-callback – Turns a stream into a callback.

Check/Detect

  • is.js - Micro check library.
  • is-promise - Test whether an object looks like a promises-a+ promise.
  • is-ci - Detect if the current environment is a CI server.
  • is - The definitive JavaScript type testing library.
  • is-type-of - Complete type checking for node.
  • is-stream - Check if something is a Node.js stream.
  • is-utf8 - Detect if a buffer is utf8 encoded.
  • core-util-is - The util.is* functions from Node core.
  • is-ip - Check if a string is an IP address.
  • isstream - Determine if an object is a Node.js Stream.
  • is-class - Check if function is an ES6 class.
  • is-type - Type checking from node core.
  • is-md5 - JavaScript utility to check if string is md5 encrypted.
  • is-core-module - Is this specifier a node.js core module?

Data Validation

  • validator.js - A library of string validators and sanitizers.
  • joi - Object schema description language and validator for JavaScript objects.
  • async-validator - Validate form asynchronous.
  • class-validator - Decorator-based property validation for classes.
  • ajv - The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927).
  • Superstruct - Simple and composable way to validate data in JavaScript (and TypeScript).
  • v8n - JavaScript fluent validation library
  • forgJs - Javascript lightweight object validator.
  • validatorjs - Data validation library in JavaScript for the browser and Node.js, inspired by Laravel's Validator.
  • is-my-json-valid - JSON Schema validator that uses code generation to be extremely fast.
  • property-validator - Easy property validation for JavaScript, Node and Express.
  • schema-inspector - JSON API sanitization and validation.

Functional programming

  • lodash - Utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.
  • immutable - Immutable data collections.
  • RxJS - Functional reactive library for transforming, composing, and querying various kinds of data.
  • Ramda - Utility library with a focus on flexible functional composition enabled by automatic currying and reversed argument order. Avoids mutating data.
  • Bacon.js - Functional reactive programming.
  • Lazy.js - Utility library similar to lodash/Underscore but with lazy evaluation, which can translate to superior performance in many cases.
  • Folktale - Suite of libraries for generic functional programming in JavaScript that allows you to write elegant, modular applications with fewer bugs, and more reuse.
  • Kefir.js - Reactive library with focus on high performance and low memory usage.
  • 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.

Inversion of control / Dependency Injection (Ioc/DI)

  • InversifyJS - A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.
  • injection-js - Dependency injection library for JavaScript and TypeScript in 5.1K. It is an extraction of the Angular's ReflectiveInjector which means that it's well designed, feature complete, fast, reliable and well tested.
  • power-di - A lightweight Dependency Injection library.

Shell

  • shelljs - Cross-platform Unix shell commands.
  • execa - Cross-platform implementation of child_process.{execFile,exec}.
  • node-windows - Windows support for Node.js scripts (daemons, eventlog, UAC, etc).
  • shx - Portable Shell Commands for Node.
  • clipboardy - Cross-platform copy/paste.
  • cross-spawn - Cross-platform implementation of child_process.spawn().
  • parallelshell - Run multiple shell commands in parallel.
  • figures - Unicode symbols with Windows fallbacks.
  • clipboard-cli - Cross-platform copy/paste.
  • gulp-execa - Cross-platform command execution in Gulp.js.
  • cross-spawn-promise - Promisified cross-spawn.
  • shell-exec - Execute a command through the system shell.

Environment

  • dotenv - Loads environment variables from .env for nodejs projects.
  • cross-env - Set environment variables cross-platform.
  • envinfo - Generate a report about your development environment for debugging and issue reporting.
  • which - Cross-platform implementation of Unix's which.
  • user-home - Get the path to the user home directory. Cross-platform.
  • username - Get the current username.
  • osenv - Cross-platform environment variables.
  • is-elevated - Check if the process is running with elevated privileges.

Event

  • ee-first - Get the first event in a set of event emitters and event pairs, then clean up after itself.

Command-line Utilities

  • Framework/Solution

    • Commander.js - The complete solution for node.js command-line interfaces.
    • yargs - Collection of common interactive command line user interfaces.
    • oclif - Node.js Open CLI Framework. Built with 💜 by Heroku.
    • meow - CLI app helper.
    • cac - Simple yet powerful framework for building command-line apps.
    • Cliffy - Framework for interactive CLIs.
    • common-bin - Abstraction bin tool wrap yargs, to provide more convenient usage, support async / generator.
  • Option/Argument parser

    • minimist - Guts of optimist's argument parser without all the fanciful decoration.
    • arg - Simple argument parsing.
    • nopt - Node/npm Option Parsing.
    • yargs-parser - 💪 the mighty option parser used by yargs.
  • Prompt

    • Inquirer.js - Collection of common interactive command line user interfaces.
    • prompts - Lightweight, beautiful and user-friendly interactive prompts.
    • Enquirer - Stylish CLI prompts that are user-friendly, intuitive and easy to create.
  • Progress

    • progress - Flexible ascii progress bar for nodejs.
    • progress-estimator - Logs a progress bar and estimation for how long a Promise will take to complete.
    • cli-progress - Easy to use progress-bar for command-line/terminal applications.
  • Style

    • chalk - Terminal string styling done right.
    • ora - Elegant terminal spinner.
    • colors.js - Get colors in your node.js console.
    • listr - Terminal task list.
    • kleur - The fastest Node.js library for formatting terminal text with ANSI colors~!
    • qrcode-terminal - QRCodes in your terminal.
    • boxen - Create boxes in the terminal.
    • terminal-image - Display images in the terminal.
    • log-symbols - Colored symbols for various log levels.
    • gradient-string - Beautiful color gradients in terminal output.
    • terminal-link - Create clickable links in the terminal.
    • cli-table3 - Pretty unicode tables for the command line.
    • easy-table - Nice text table for Node.js.
    • treeify - Pretty-print a javascript object as a tree.
    • kolorist - A tiny utility to colorize stdin/stdout.
    • console-png - Print PNG images to terminal output.
  • Other

    • commitizen - The commitizen command line utility.
    • concurrently - Run commands concurrently. Like npm run watch-js & npm run watch-less but better.
    • update-notifier - Update notifications for your CLI app.
    • console-clear - Clear the console, cross-platform.

Node.js Management

  • nvm - Node Version Manager。
  • nvm for Windows - Version management for Windows.
  • n - Node.js version management.
  • fnm - 🚀 Fast and simple Node.js version manager, built in Rust.
  • nave - Virtual Environments for Node.js.
  • nodenv - Version manager that is similar to Ruby's rbenv. It supports auto version switching.
  • nodeenv - Node.js virtual environment compatible to Python's virtualenv.

NPM

  • NPM Management

    • npm - The package manager for JavaScript.
    • yarn - A modern package manager split into various packages.
    • nrm - About NPM registry manager, fast switch between different registries: npm, cnpm, nj, taobao.
    • cnpm - Npm client for China mirror of npm.
  • package.json

    • read-pkg-up - Read the closest package.json file.
    • node-pkginfo - An easy way to expose properties on a module from a package.json.
    • read-pkg - Read a package.json file.
    • write-pkg - Write a package.json file.
  • Semantic Version

    • semver - The semver parser for node (the one npm uses).
    • compare-versions - Compare semver version strings to find which is greater, equal or lesser.
  • Utilities

    • npm-check-updates - Find newer versions of package dependencies than what your package.json allows.
    • npm-run-all - A CLI tool to run multiple npm-scripts in parallel or sequential.
    • depcheck - Check your npm module for unused dependencies.
    • npminstall - Make npm install fast and easy.
    • npm-home - Open the npm page of a package.
    • npm-name - Check a package name's availability on npm.
    • pacote - Fetches package manifests and tarballs from the npm registry.
    • npm-package-arg - Parse the things that can be arguments to npm install.
    • npm-registry-fetch - Like fetch() but for the npm registry
    • npm-updater - Check update of npm package.

Filesystem

  • Common

    • fs-extra - Extra methods for the fs module.
    • graceful-fs - Graceful-fs functions as a drop-in replacement for the fs module, making various improvements.
    • filesize.js - Generate a human readable String describing the file size.
    • memfs - In-memory filesystem with Node's API.
    • fs-jetpack - Completely redesigned file system API for convenience in everyday use.
    • make-dir - Recursively create directories like mkdir -p.
    • find-up - Find a file or directory by walking up parent directories.
    • filenamify - Convert a string to a valid filename.
    • filehound - Flexible and fluent interface for searching the file system.
    • move-file - Move a file, even works across devices.
    • pkg-dir - Find the root directory of an npm package.
    • proper-lockfile - Inter-process and inter-machine lockfile utility.
    • istextorbinary - Check if a file is text or binary.
    • mkdirp - Recursively mkdir, like mkdir -p.
    • dir-compare - Node JS directory compare.
    • folder-hash - Create a hash checksum over a folder or a file.
    • lnfs - Force create symlinks like ln -fs.
  • Copy

    • ncp - Asynchronous recursive file copying with Node.js.
    • cpy - Copy files.
  • Delete

    • rimraf - Recursively delete files like rm -rf.
    • del - Delete files and directories.
  • Temporary

    • temp - Temporary File, Directory, and Stream support for Node.js.
    • tempy - Get a random temporary file or directory path. 302
    • temp-dir - Get the real path of the system temp directory.
  • Watch

    • chokidar - Minimal and efficient cross-platform file watching library.
    • watchpack - Wrapper library for directory and file watching.
  • Glob

    • glob - Glob functionality for node.js.
    • globby - Based on fast-glob but adds a bunch of useful features.
    • fast-glob - Very fast and efficient glob library for Node.js.
    • node-sync-glob - Synchronize files and folders locally by glob patterns, watch option included.

Parsing

  • Markdown

    • marked - A markdown parser and compiler. Built for speed.
    • remark - Markdown processor powered by plugins.
    • markdown-it - Markdown parser with 100% CommonMark support, extensions and syntax plugins.
  • CSV

    • node-csv - Full featured CSV parser with simple api and tested against large datasets.
    • csv-parser - Streaming CSV parser that aims to be faster than everyone else.
    • neat-csv - Fast CSV parser. Callback interface for the above.
  • YAML

  • XML

  • HTML

  • CSS

  • SQL

  • Other

    • readability - A standalone version of the readability library used for Firefox Reader View.

Git

  • husky - Modern native Git hooks made easy 🐶 woof!
  • nodegit - Node bindings to the libgit2 project.
  • simple-git - A light weight interface for running git commands in any node.js application.
  • gitgraph-node - Draw pretty git graphs in your terminal.
  • pre-commit - Automatically installs a git pre-commit script in your git repository which runs your npm test on pre-commit.
  • yorkie - A fork of husky, 🐶 Git hooks made easy, used in vue3.
  • git-url-parse - A high level git url parser for common git providers.
  • git-promise - Simple wrapper to run any git command and process it's output using promises.
  • gittar - Download and/or Extract git repositories (GitHub, GitLab, BitBucket). Cross-platform and Offline-first.
  • remote-git-tags - Get tags from a remote git repo. Using only JS.
  • giturl - Transfer git url to web url.
  • download-git-repo - Download and extract a git repository (GitHub, GitLab, Bitbucket) from node.

Logging

  • winston - Multi-transport async logging library.
  • pino - Extremely fast logger inspired by Bunyan.
  • signale - Highly configurable logging utility.
  • log4js-node - A logging library which different from Java log4j.
  • consola - Elegant Console Logger for Node.js and Browser.
  • storyboard - A library, plus a Chrome DevTools extension.
  • cabin - Best JavaScript and Node.js logging service and logging npm package.
  • fancy-log - Log things, prefixed with a timestamp.
  • captains-log - Lightweight logger with a simple pass-through configuration for use with fancier logging librarie.

Process management

  • PM2 - Advanced Process Manager.
  • nodemon - Monitor for changes in your app and automatically restart the server.
  • forever - A simple CLI tool for ensuring that a given script runs continuously.
  • supervisor - Restart scripts when they crash or restart when a *.js file changes.
  • node-windows - Run scripts as a native Windows service and log to the Event viewer.
  • 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.
  • current-processes - Node.js library to get a snapshot of the currently running processes, OS-agnostic.

Linter & Formatter

  • prettier - ❤Prettier is an opinionated code formatter.
  • standard - JavaScript Style Guide, with linter & automatic code fixer.
  • eslint - Find and fix problems in your JavaScript code.
  • stylelint - Mighty, modern linter that helps you avoid errors and enforce conventions in your styles.
  • lint-staged - Run linters on git staged files.
  • commitlint - Lint commit messages.
  • xo - JavaScript/TypeScript linter (ESLint wrapper) with great defaults
  • markdownlint - A Node.js style checker and lint tool for Markdown/CommonMark files.
  • textlint - The pluggable natural language linter for text and markdown.
  • pretty-quick - ⚡ Get Pretty Quick.

Build Tools

  • webpack - Packs modules and assets for the browser.

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

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

  • esbuild - An extremely fast JavaScript bundler and minifier.

  • rollup - Next-generation ES2015 module bundler.

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

  • Grunt - JavaScript Task Runner

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

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

  • ESM

    • Vite - Next Generation Frontend Tooling.
    • snowpack - ESM-powered frontend build tool. Instant, lightweight, unbundled development.

Templating

  • Pug - High-performance template engine heavily influenced by Haml.
  • handlebars.js - Superset of Mustache templates which adds powerful features like helpers and more advanced blocks.
  • mustache.js - Minimal templating with {{mustaches}} in JavaScript.
  • marko - HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags.
  • art-template - High performance JavaScript templating engine.
  • nunjucks - Templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
  • EJS - Simple unopinionated templating language.
  • hogan.js - A compiler for the Mustache templating language.
  • doT - Fastest + concise javascript template engine for nodejs and browsers. Partials, custom delimiters and more.
  • jsrender - A lightweight, powerful and highly extensible templating engine. In the browser or on Node.js, with or without jQuery.
  • Twig.js - JS implementation of the Twig Templating Language.
  • hbs - Express view engine wrapper for Handlebars.
  • Juicer - A Lightweight JavaScript Template Engine.
  • tempo - Tempo is an easy, intuitive JavaScript rendering engine that enables you to craft data templates in pure HTML.
  • xtemplate - High Speed, eXtensible Template Engine lib on browser and nodejs. support async control, inheritance, include, logic expression, custom function and more.

Web Frameworks

  • Express - Web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
  • Next.js - Minimalistic framework for server-rendered universal JavaScript web apps.
  • Meteor - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. (You might like awesome-meteor)
  • Nuxt.js - Minimalistic framework for server-rendered Vue.js apps.
  • Nest - Angular-inspired framework for building efficient and scalable server-side apps. (You might like awesome-nestjs)
  • 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.
  • sails - Realtime MVC Framework for Node.js.
  • Fastify - Fast and low overhead web framework.
  • Hapi - Framework for building applications and services.
  • Egg - Born to build better enterprise frameworks and apps with Node.js & Koa.
  • Feathers - Microservice framework built in the spirit of Express.
  • LoopBack - Powerful framework for creating REST APIs and easily connecting to backend data sources.
  • Restify - Enables you to build correct REST web services.
  • ThinkJS - Framework with ES2015+ support, WebSockets, REST API.
  • Midway - A Node.js framework for building Serverless services, traditional server-side applications, microservices, and small programs.
  • total.js - A framework for Node.js platfrom written in pure JavaScript similar to PHP's Laravel or Python's Django or ASP.NET MVC
  • AdonisJs - A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.
  • Micro - Minimalistic microservice framework with an async approach.
  • Moleculer - Fast & powerful microservices framework.
  • TypeGraphQL - Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators.
  • seneca - Toolkit for writing microservices.
  • beidou - Isomorphic framework for server-rendered React apps.
  • Marble.js - Functional reactive framework for building server-side apps, based on TypeScript and RxJS.
  • ActionHero - Framework for making reusable & scalable APIs for TCP sockets, WebSockets, and HTTP clients.
  • lad - The best Node.js framework. Made by a former Express TC and Koa team member.
  • Tinyhttp - Modern and fast Express-like web framework.
  • Hemera - Write reliable and fault-tolerant microservices with NATS.
  • restana - Super fast and minimalist framework for building REST micro-services.
  • Zeronode - Minimal building block for reliable and fault-tolerant microservices.

Static Site Generator & Blogging

  • gatsby - Build blazing fast, modern apps and websites with React.
  • hexo - A fast, simple & powerful blog framework, powered by Node.js.
  • vuepress - Minimalistic Vue-powered static site generator.
  • netlify-cms - A Git-based CMS for Static Site Generators.
  • react-static - A progressive static site generator for React.
  • gridsome - The Jamstack framework for Vue.js.
  • vitepress - Vite & Vue powered static site generator.

Documentation

  • Docusaurus - Documentation website generator that leverages React and Markdown, and comes with translation and versioning features.
  • docsify - 🃏 A magical documentation site generator.
  • JSDoc - API documentation generator similar to JavaDoc or PHPDoc.
  • 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.
  • ESDoc - Documentation generator targeting ES2015, attaching test code and measuring documentation coverage.

Desktop Apps

  • Electron - Build cross platform desktop apps with web technologies. (You might like awesome-electron)
  • nw.js - Call all Node.js modules directly from DOM/WebWorker and enable a new way of writing applications with all Web technologies.

Real-time

  • Socket.io - Enables real-time bidirectional event-based communication.
  • ws - Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js.
  • µWebSockets - Highly scalable WebSocket server & client library.
  • MQTT.js - Client for MQTT - Pub-sub based messaging protocol for use on top of TCP/IP.
  • SocketCluster - Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
  • Faye - Real-time client-server message bus, based on Bayeux protocol.
  • Primus - An abstraction layer for real-time frameworks to prevent module lock-in.
  • engine.io - The implementation of transport-based cross-browser/cross-device bi-directional communication layer for Socket.IO.
  • SockJS-node - WebSocket emulation - Node.js server.
  • Aedes - Barebone MQTT server that can run on any stream server.
  • rpc-websockets - JSON-RPC 2.0 implementation over WebSockets.
  • deepstream.io - Scalable real-time microservice framework.
  • Kalm - Low-level socket router and middleware framework.

Job Queues

  • bull - Persistent job and message queue.
  • amqp- AMQP 0-9-1 library and client for Node.JS.
  • kafka-node- Node.js client for Apache Kafka 0.8 and later.
  • bee-queue - High-performance Redis-backed job queue.
    • arena - An interactive UI dashboard for Bee Queue.
  • kafkajs - A modern Apache Kafka client for node.js.
  • rsmq - Redis-backed message queue.
  • sqs-consumer - Build Amazon Simple Queue Service (SQS) based apps without the boilerplate.
  • node-resque - Redis-backed job queue.
  • better-queue - Simple and efficient job queue when you cannot use Redis.
  • RedisSMQ - Simple high-performance Redis message queue with real-time monitoring.
  • idoit - Redis-backed job queue engine with advanced job control.

Job Scheduling

  • node-schedule - A cron-like and not-cron-like job scheduler for Node.
  • agenda - Lightweight job scheduling for Node.js.
  • node-cron - A tool that allows you to execute something on a schedule.
  • cron-parser - Node.js library for parsing crontab instructions.

Debugging / Profiling

  • node-inspector - Debugger based on Blink Developer Tools.
  • ndb - Improved debugging experience, enabled by Chrome DevTools.
  • debug - Tiny debugging utility.
  • Clinic.js - Clinic.js diagnoses your Node.js performance issues.
  • ironNode - Node.js debugger supporting ES2015 out of the box.
  • node-heapdump - Make a dump of the V8 heap for later inspection.
  • 0x - Flamegraph profiling.
  • leakage - Write memory leak tests.
  • why-is-node-running - Node.js is running but you don't know why?
  • llnode - Post-mortem analysis tool which allows you to inspect objects and get insights from a crashed Node.js process.
  • swagger-stats - Trace API calls and monitor API performance, health, and usage metrics.
  • njsTrace - Instrument and trace your code, see all function calls, arguments, return values, as well as the time spent in each function.
  • locus - Starts a REPL at runtime that has access to all variables.
  • stackman - Enhance an error stacktrace with code excerpts and other goodies.
  • NiM - Manages DevTools debugging workflow.
  • thetool - Capture different CPU, memory, and other profiles for your app in Chrome DevTools friendly format.
  • ctrace - Well-formatted and improved trace system calls and signals.
  • v8-profiler-next - Node bindings for the v8 profiler.
  • vstream - Instrumentable streams mix-ins to inspect a pipeline of streams.

Forum

  • NodeBB - Node.js based forum software built for the modern web
  • nodeclub - A forum software based on Node.js and MongoDB.

Database

  • Drivers

    • MySQL - A pure node.js JavaScript Client implementing the MySQL protocol.
    • PostgreSQL - PostgreSQL client for node.js.
    • MongoDB - The Official MongoDB Node.js Driver.
    • ioredis - A robust, performance-focused and full-featured Redis client for Node.js.
    • LevelUP - A wrapper for abstract-leveldown compliant stores, for Node.js and browsers.
    • couchdb-nano - Nano: The official Apache CouchDB library for Node.js.
    • Couchbase - Couchbase Node.js Client Library (Official).
    • Aerospike - Node.js client for the Aerospike database.
  • ODM / ORM

    • Sequelize - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL, and more.
    • TypeORM - ORM for PostgreSQL, MariaDB, MySQL, SQLite, and more.
    • Mongoose - Elegant MongoDB object modeling.
    • Prisma - Modern database access (ORM alternative). Auto-generated and type-safe query builder in TypeScript. Supports PostgreSQL, MySQL & SQLite.
    • Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
    • Objection.js - Lightweight ORM built on the SQL query builder Knex.
    • Waterline - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
    • pg-promise - PostgreSQL framework for native SQL using promises.
    • MikroORM - TypeScript ORM based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite.
    • Massive - PostgreSQL data access tool.
    • slonik - PostgreSQL client with strict types, detailed logging and assertions.
    • OpenRecord - ORM for PostgreSQL, MySQL, SQLite3 and RESTful datastores. Similar to ActiveRecord.
  • Query builder

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

Cache

  • lru-cache - A cache object that deletes the least-recently-used items.
  • node-cache - A node internal (in-memory) caching module.
  • memcached - A fully featured Memcached client build on top of Node.js. Build with scaling in mind so it will support Memcached clusters and consistent hashing.
  • node-cache-manager - Cache module for Node.JS.
  • hashlru - Simpler, faster LRU cache algorithm.
  • ylru - Add "expire", "allow set empty value" extends on hashlru.

Serverless

  • serverless - Serverless Framework – Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more!

Automation & RPA

  • puppeteer - Headless Chrome Node.js API.
  • playwright - Automate Chromium, Firefox and WebKit with a single API.
  • phantomjs - Scriptable Headless Browser.
  • appium - Automation for iOS, Android, and Windows Apps.
  • robotjs - Node.js Desktop Automation.

Testing

  • Assertion

    • chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
    • power-assert - Provides descriptive assertion messages through the standard assert interface.
    • expect.js - Minimalistic BDD-style assertions for Node.JS and the browser.
    • should.js - BDD style assertions for node.js.
    • better-assert - C-style assert() for nodejs, reporting the expression string as the error message.
    • http-assert - Assert with status codes.
  • Faker Generator

    • faker.js - Generate massive amounts of realistic fake data in Node.js and the browser.
    • casual - Fake data generator for javascript.
    • fony - A simple command line tool for generating fake data from a template string.
  • Mock

    • Mock.js - A simulation data generator.
    • Nock - HTTP mocking and expectations.
    • Sinon.JS - Test spies, stubs and mocks.
    • easy-mock - A persistent service that generates mock data quickly and provids visualization view.
    • mm - An simple but flexible mock(or say stub) package, mock mate.
    • smoke - 💨 Simple yet powerful file-based mock server with recording abilities.
  • End-to-end Testing / Automated UI

    • nightwatch - End-to-end testing framework written in Node.js and using the Webdriver API.
    • CodeceptJS - End 2 End Testing Framework for NodeJS.
  • Testing Framework

    • jest - Delightful JavaScript Testing.
    • mocha - Simple, flexible, fun javascript test framework for node.js & the browser.
    • ava - Node.js test runner that lets you develop with confidence 🚀.
    • jasmine - Simple JavaScript testing framework for browsers and node.js.
    • supertest - Super-agent driven library for testing node.js HTTP servers using a fluent API.
    • node-tap - Test Anything Protocol tools for node.
  • Coverage

    • nyc - The Istanbul command line interface.
    • node-coveralls - Coveralls.io support for Node.js. Get the great coverage reporting of coveralls.io and add a cool coverage button (like the one above) to your README.
    • codecov - Global coverage report uploader for Codecov in NodeJS.
  • Benchmarking

    • Benchmark.js - Benchmarking library that supports high-resolution timers and returns statistically significant results.
    • matcha - Simplistic approach to benchmarking.
    • node-wrk - Wrk load testing tool node wrapper.
  • Solution

    • macaca - Automation solution for multi-platform.

Office

  • Excel

    • sheetjs - Spreadsheet Data Toolkit.
    • exceljs - Excel Workbook Manager.
    • xlsx-populate - Excel XLSX parser/generator written in JavaScript with Node.js and browser support.
  • Word

    • officegen - Standalone Office Open XML files (Microsoft Office 2007 and later) generator for Word (docx), PowerPoint (pptx) and Excell (xlsx) in javascript. The output is a stream.
    • Mammoth - Convert Word documents (.docx files) to HTML.
    • docx - Easily generate .docx files with JS/TS with a nice declarative API. Works for Node and on the Browser.
  • PDF

    • PDFKit - JavaScript PDF generation library for Node and the browser.
    • percollate - A command-line tool to turn web pages into beautiful, readable PDF, EPUB, or HTML docs.
    • pdf-lib - Create and modify PDF documents in any JavaScript environment.
    • pdf2json - A PDF file parser that converts PDF binaries to text based JSON.
  • PPT

    • nodeppt - This is probably the best web presentation tool so far!

OS Identification

  • systeminformation - Hardware/software system information.
  • is-wsl - Detect whether current platform is WSL (Windows Subsystem for Linux).
  • os-name - Get the name of the current operating system.
  • getos - Retrieve the current OS, including Linux distribution.
  • is-windows - Detect whether the current platform is Windows.

Compression / Decompression

  • jszip - Create, read and edit .zip files with Javascript.
  • adm-zip - Create, read and edit .zip files with Javascript.
  • node-tar - Fast and full-featured Tar for Node.js.
  • yauzl - Yet another unzip library for node.
  • tar-fs - Tar-fs allows you to pack directories into tarballs and extract tarballs into directories.
  • compressing - Everything you need for compressing and uncompressing.
  • yazl - Yet another zip library for node.
  • 7zip - 7zip Windows Package via Node.js.

Minifiers

Email

  • Nylas Mail - An extensible desktop mail app built on the modern web.
  • Nodemailer - Send e-mails with Node.JS – easy as cake!
  • Email Templates - Create, preview, and send custom email templates for Node.js.
  • emailjs - Html emails and attachments to any smtp server with nodejs.
  • mjml - Makes responsive-email easy.

Network

  • IP

    • node-ip - IP address tools for node.js.
    • public-ip - Get your public IP address - very fast!
    • request-ip - A Node.js module for retrieving a request's IP address on the server.
    • ipaddr.js - IP address manipulation library in JavaScript.
    • internal-ip - Get your internal IP address.
    • ipify - Get your public IP address.
  • Port

    • node-portfinder - A simple tool to find an open port or domain socket on the current machine.
    • get-port - Get an available port.
    • detect-port - Node.js implementation of port detector.
  • Other

    • netcat - Netcat port in pure JS.
    • getmac - Get the computer MAC address.
    • DHCP - DHCP client and server.
    • address - Get current machine IP and MAC address.
    • default-gateway - Get the default network gateway, cross-platform.

HTTP

  • Request Client

    • axios - Promise based HTTP client (works in the browser too).
    • request - 🏊🏾 Simplified HTTP request client.
    • superagent - HTTP request library.
    • got - Nicer interface to the built-in http module.
    • node-fetch - window.fetch for Node.js.
    • needle - Nimble, streamable HTTP client for Node.js. With proxy, iconv, cookie, deflate & multipart support.
    • urllib - Request HTTP(s) URLs in a complex world.
    • gotql - GraphQL request library built on got.
    • wreck - HTTP Client Utilities.
    • cacheable-request - Wrap native HTTP requests with RFC compliant cache support.
    • gh-got - Convenience wrapper for got to interact with the GitHub API.
    • flashheart - REST client.
  • HTTP Server

    • http-server - A simple zero-configuration command-line http server.
    • anywhere - Running static file server anywhere.
    • http-fake-backend - Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
    • json-server - Get a full fake REST API with zero coding in less than 30 seconds.
  • Proxy

    • http-proxy - HTTP proxy.
    • https-proxy-agent - An HTTP(s) proxy http.Agent implementation for HTTPS endpoints.
    • global-agent - Global HTTP/HTTPS proxy agent that is configurable using environment variables.
    • fast-proxy - Node.js framework agnostic library that enables you to forward an http request to another HTTP server. Supported protocols: HTTP, HTTPS, HTTP2.
    • argo - An extensible, asynchronous HTTP reverse proxy and origin server.
  • Middleware

    • http-proxy-middleware - ⚡ The one-liner node.js http-proxy middleware for connect, express and browser-sync.
  • Download

    • download - Download and extract files effortlessly.
    • nugget - Minimalist wget clone written in node. HTTP GET files and downloads them into the current directory.

Authentication

  • Passport - Simple, unobtrusive authentication.
  • Grant - OAuth providers for Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel, and many more.
  • permit - An unopinionated authentication library for building Node.js APIs.

Authorization

  • CASL - Isomorphic authorization for UI and API.
  • node-casbin - Authorization library that supports access control models like ACL, RBAC and ABAC.

Distribute

RPC

  • grpc-js - Pure JavaScript gRPC Client.
  • jayson - Jayson is a simple but featureful JSON-RPC 2.0/1.0 client and server for node.js.
  • sofa-rpc-node - SOFARPC Node is a high-performance, high-extensibility, production-level Nodejs RPC framework.

Crawler

  • node-crawler - Web Crawler/Spider for NodeJS + server-side jQuery.
  • x-ray - Web scraper with pagination and crawler support.
  • headless-chrome-crawler - Headless Chrome crawls with jQuery support.
  • node-osmosis - HTML/XML parser and web scraper for Node.js.
  • scrape-it - A Node.js scraper for humans.
  • scraperjs - A complete and versatile web scraper.
  • simplecrawler - Event driven web crawler.
  • web-scraper-chrome-extension - Web data extraction tool implemented as chrome extension.
  • webster - A reliable web crawling framework which can scrape ajax and js rendered content in a web page.
  • supercrawler - Define custom handlers to parse content. Obeys robots.txt, rate limits and concurrency limits.
  • Squidwarc - High fidelity, user scriptable, archival crawler that uses Chrome or Chromium with or without a head.
  • js-crawler - Web crawler for Node.JS, both HTTP and HTTPS are supported.

AST

  • Parser

    • babel-parser - JavaScript parser.
    • antlr - ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
    • acorn - Small, fast, JavaScript-based JavaScript parser.
    • esprima - High performance, standard-compliant ECMAScript parser.
    • recast - JavaScript syntax tree transformer, nondestructive pretty-printer, and automatic source map generator.
    • espree - Esprima-compatible JavaScript parser.
    • csstree - Tool set for CSS including fast detailed parser, walker, generator and lexer based on W3C specs and browser implementations.
    • es-module-lexer - Low-overhead lexer dedicated to ES module parsing for fast analysis.
  • Traversal

    • acorn-walker - Small, fast, JavaScript-based JavaScript parser.
    • estraverse - ECMAScript JS AST traversal functions.
  • Codegen

    • escodegen - ECMAScript code generator.
    • astring - 🌳 Tiny and fast JavaScript code generator from an ESTree-compliant AST.
  • JavaScript interpreter

    • JS-Interpreter - A sandboxed JavaScript interpreter in JavaScript.
    • jsjs - A simple JavaScript interpreter.
    • sval - A javascript interpreter written in javascript.
  • Other

    • astexplorer - Web tool to explore the ASTs generated by various parsers.
    • periscopic - Utility for analyzing scopes belonging to an ESTree-compliant AST.
    • estree-walker - Traverse an ESTree-compliant AST.

Design To Code(D2C)

  • psd.js - A Photoshop PSD file parser for NodeJS and browsers.

Sandbox

  • vm2 - Advanced vm/sandbox for Node.js.
  • sandbox - A nifty javascript sandbox for node.js.

Hardware

  • johnny-five - Firmata based Arduino Framework.
  • serialport - Access serial ports for reading and writing.
  • usb - USB library.
  • onoff - GPIO access and interrupt detection.
  • pigpio - Fast GPIO, PWM, servo control, state change notification, and interrupt handling on the Raspberry Pi.
  • node-escpos - ESC/POS Printer driver for node.
  • i2c-bus - I2C serial bus access.
  • gps - NMEA parser for handling GPS receivers.
  • node-bluetooth - Bluetooth serial port communication for Node.js.
  • spi-device - SPI serial bus access.

IoT

  • zetta - An API-first, open source software platform for the Internet of Things.
  • iot-nodejs - Client libraries and samples for connecting to IBM Watson IoT using nodejs.

Machine learning & Neural networks

  • tfjs - A WebGL accelerated JavaScript library for training and deploying ML models.
  • brain.js - GPU accelerated Neural networks in JavaScript for Browsers and Node.js.
  • pipcook - Machine learning platform for Web developers.
  • onnxjs - ONNX.js: run ONNX models using JavaScript.
  • tensorflow-nodejs - TensorFlow Node.js provides idiomatic JavaScript language bindings and a high layer API for Node.js users.

Natural language processing

  • compromise - Modest natural-language processing.
  • natural - Natural language facility.
  • nlp.js - Building bots, with entity extraction, sentiment analysis, automatic language identify, and more.
  • franc - Detect the language of text.
  • sentiment - AFINN-based sentiment analysis for Node.js.
  • retext - An extensible natural language system.
  • leven - Measure the difference between two strings using the Levenshtein distance algorithm.

About

A awesome Node.js packages and resources

License:MIT License