Comprehensive Node.js Resource Compilation with 40K Stars!

Comprehensive Node.js Resource Compilation with 40K Stars!

Author @ Qianshao Jun | Address @ https://github.com/jobbole/awesome-nodejs-cn Since WeChat does not support external links, please click “Read Original” at the end or visit the GitHub address for more detailed resources.

[Guide]: Node.js is an open-source, cross-platform JavaScript runtime used for writing server and command-line tools.

awesome-nodejs is a Node.js resource list initiated and maintained by sindresorhus, covering: command-line tools, logging, debugging, HTTP, build tools, file systems, templates, web frameworks, flow control, text, images, and data validation, among others.

This list is considered the most comprehensive Node.js resource compilation, nearing 40,000 Stars on GitHub.

The Chinese version is maintained and updated by the Open Source Frontline and Front-end Encyclopedia WeChat public account teams. You are welcome to follow on GitHub. This Chinese version of the resource library will be regularly synchronized and updated here.

Participants in This Project

  • Maintainers: “Open Source Frontline” and “Front-end Encyclopedia” WeChat public account teams. “Open Source Frontline” regularly shares the latest, interesting, and popular open-source projects in the Zhihu column, with detailed introductions and examples for each project. Portal: https://www.zhihu.com/column/c_1317124962785062912
  • Contributors: cooperw991

Resource List

  • Packages
    • Black Technology
    • Command-Line Programs
    • Functional Programming
    • HTTP
    • Debugging / Analysis
    • Logging
    • Command-Line Tools
    • Build Tools
    • Hardware
    • Templates
    • Web Frameworks
    • Documentation Related
    • File Systems
    • Flow Control
    • File Streams
    • Real-Time
    • Images
    • Text
    • Numbers
    • Mathematics
    • Dates
    • URLs
    • Data Validation
    • Parsing
    • Humanization
    • Compression
    • Networking
    • Databases
    • Testing
    • Security
    • Benchmarking
    • Code Compression
    • Authentication
    • Authorization
    • Email
    • Task Queues
    • Node.js Management
    • Natural Language Processing
    • Process Management
    • Automation
    • AST
    • Static Site Generation
    • Content Management Systems
    • Forums
    • Blogging
    • Weird
    • Serialization
    • Others

Resource List

Packages

Black Technology

  • webtorrent – Node.js and browser torrent client
  • peerflix – Torrent client
  • dat – Real-time replication and version control for datasets
  • ipfs – A distributed file system that connects all computing devices using the same system files
  • stackgl – A WebGL open software ecosystem built on browserify and npm
  • peerwiki – Wikipedia on all BitTorrent
  • peercast – Video streaming software for Chromecast
  • BitcoinJS – A concise, readable, and reliable Bitcoin library
  • Bitcore – A clean and powerful Bitcoin library
  • PDFKit – PDF generation library
  • turf – A modular geospatial processing and analysis engine
  • webcat – Use your GitHub private/public key for cross-network authentication via peer-to-peer web instant messaging
  • NodeOS – The first operating system based on npm
  • YodaOS – AI operating system
  • Brain.js – Machine learning framework
  • Pipcook – Frontend algorithm framework for creating machine learning pipelines
  • Cytoscape.js – Graph theory (a.k.a. networks) modeling and analysis
  • Kadence – KAD algorithm distributed hash table
  • Seedshot – Temporary peer-to-peer sharing of browser screenshots
  • js-git – Git implemented in JavaScript
  • skale – High-performance distributed data processing engine
  • xlsx – Pure JS Excel reading and writing tool
  • isomorphic-git – Git implemented in pure JavaScript

Command-Line Programs

  • np – Better npm publish
  • npm-name – Check if package name is available on npm
  • gh-home – Open the GitHub homepage of the project in the current directory
  • npm-home – Open a package’s npm homepage
  • trash – A safer alternative to rm
  • speed-test – Test your internet connection speed and ping
  • emoj – Find related emojis from text in the command line
  • pageres – Take screenshots of websites
  • cpy – Copy files
  • vtop – A better top with beautiful charts
  • empty-trash – Empty the folder
  • is-up – Check if a website is accessible
  • is-online – Check if the network connection is normal
  • public-ip – Get your public IP address
  • clipboard-cli – Copy and paste in the terminal
  • XO – Enforce strict code style using JavaScript happiness style
  • Standard – JavaScript standard style – the style of all styles
  • ESLint – A pluggable linting utility for JavaScript
  • dev-time – Get the local time of a GitHub user
  • David – Notify you when dependencies in npm packages are outdated
  • http-server – Simple, zero-configuration command-line HTTP server
  • Live Server – Development environment HTTP server with hot-reload feature
  • bcat – Pipe command output to a web browser
  • normit – Use voice synthesis in your terminal for Google Translate
  • fkill – Cross-platform process kill command
  • pjs – Fast filtering, mapping, and reducing pipeline command implemented in JavaScript
  • license-checker – Check licenses of dependencies in your application
  • browser-run – Easily run code in a browser environment
  • tmpin – Add stdin support to all CLI programs that allow file input
  • wifi-password – Get the current wifi password
  • wallpaper – Change desktop wallpaper
  • brightness – Change screen brightness
  • torrent – Download torrents
  • kill-tabs – Close all Chrome tabs to improve performance, reduce power consumption, and save memory usage
  • alex – Capture inappropriate expressions in writing
  • pen – Write Markdown in your favorite editor, providing real-time preview in the browser
  • subdownloader – Subtitle downloader for movies and TV shows
  • dark-mode – Toggle macOS dark mode
  • iponmap – IP address finder
  • Jsome – Print beautiful JSON with custom colors and indentation
  • itunes-remote – Interactive control of iTunes
  • mobicon – Mobile application icon generator
  • mobisplash – Mobile application splash page generator
  • diff2html-cli – Generate beautiful HTML to display the results of git diff command
  • Cash – A cross-platform class Unix Shell written in pure JavaScript
  • trymodule – Use npm packages in the terminal
  • jscpd – Source code duplicate detection
  • atmo – Simulate server-side APIs
  • auto-install – Automatically install dependencies while writing code
  • lessmd – Markdown previewer in terminal environment
  • cost-of-modules – Find dependencies that degrade performance
  • localtunnel – Expose your localhost to the public
  • svg-term-cli – Share terminal sessions based on SVG
  • gtop – System monitoring dashboard in terminal
  • themer – Generate themes for your editor, terminal, wallpaper, Slack, etc.
  • carbon-now-cli – Generate beautiful images of your code
  • cash-cli – 170 currency exchange rates conversion
  • taskbook – Task, board, and note manager in command-line environment
  • discharge – Easily deploy static websites to Amazon S3
  • npkill – Easily find and delete outdated and bloated node_modules folders

Functional Programming

  • lodash – A better and faster Underscore.js, providing compatibility, flexibility, high performance, and other features utility library
  • immutable – Immutable datasets
  • Ramda – A toolkit focused on data immutability and pure functional style, enabling flexible function composition using currying and parameter reordering.
  • Folktale – A library for generic functional programming in JavaScript that allows you to write elegant, modular applications with less bugs and more reusability
  • Mout – This library’s biggest difference from other existing solutions is that you can choose to load only the required modules/functions without additional overhead
  • Bacon.js – Functional reactive programming
  • RxJS – A functional reactive library for transforming, composing, and querying various types of data
  • Lazy.js – A lodash/Underscore-like utility library with lazy evaluation that can provide superior performance in many cases.
  • Kefir.js – A reactive library focused on high performance and low memory consumption

HTTP

  • got – A better interface for the built-in http module
  • gh-got – A convenient wrapper for interacting with got and the GitHub API
  • axios – A Promise-based HTTP client (also works in the browser)
  • wreck – HTTP client tool.
  • download – Makes downloading and extracting files easy
  • http-proxy – HTTP proxy
  • superagent – HTTP request library
  • node-fetch – window.fetch for Node.js
  • flashheart – REST client
  • http-fake-backend – Create a mock backend service with customizable routing using JSON files or JavaScript objects
  • cacheable-request – Wrap raw HTTP requests with RFC-compliant caching support.
  • gotql – A GraphQL request library built on got
  • global-agent – A global HTTP/HTTPS proxy configurable with environment variables
  • smoke – A recordable file-based mock HTTP service

Debugging / Analysis

  • ndb – A tool that enhances the Chrome DevTools debugging experience
  • ironNode – An out-of-the-box debugger for Node.js that supports ES2015
  • node-inspector – A debugger based on Blink Developer Tools
  • debug – A lightweight debugging tool
  • why-is-node-running – When you don’t know why Node.js isn’t exiting correctly…
  • njsTrace – Detect and trace code, viewing all function calls, parameters, return values, and time spent in each function
  • vstream – Inspect data streams and display through pipes
  • stackman – Enhances error stack traces for thrown exceptions
  • locus – Start a REPL with all accessible variables at runtime
  • 0x – A flame graph analysis tool
  • ctrace – Format and enhance tracing of system calls and signals
  • leakage – Write memory leak tests
  • llnode – A tool for “analyzing” crashed Node.js processes to inspect their objects
  • thetool – Capture different CPU, memory, and other resource usage for your application in a Chrome DevTools friendly format
  • swagger-stats – Track API calls and monitor API performance, health, and usage metrics
  • NiM – Manage DevTools debugging workflows

Logging

  • pino – An ultra-fast logger inspired by Bunyan
  • winston – An asynchronous logging library supporting multiple logging formats
  • console-log-level – The simplest imaginable logger, supporting log levels and custom prefixes
  • storyboard – End-to-end, layered, real-time, colorful logging and description
  • signale – Console logger
  • consola – Console logger

Command-Line Tools

  • chalk – Beautify terminal string styles
  • meow – CLI app helper
  • yargs – Command-line parser that automatically generates elegant user interfaces
  • ora – Elegant terminal spinner progress bar
  • get-stdin – Simple stdin
  • log-update – Print logs in the terminal by overriding previous output, used for creating progress bars or animations
  • Ink – Command-line interactive program based on React
  • listr – Terminal task list
  • conf – A simple tool for configuration management of programs or modules
  • ansi-escapes – Operate terminal with ANSI escape codes
  • log-symbols – Log different levels of logs with different colored symbols
  • figures – Unicode symbols that support Windows CMD fallback
  • 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 needed to display the string
  • cli-truncate – Truncate strings in the terminal to a specific width
  • first-run – Check if this is the first run of the process
  • blessed – A library similar to Curses
  • Inquirer.js – Interactive command-line prompt tool
  • yn – Parse strings containing yes/no semantics into boolean values
  • cli-table3 – Beautiful Unicode tables
  • drawille – Draw in the terminal using Unicode braille characters
  • update-notifier – Upgrade notifications for CLI applications
  • ascii-charts – ASCII bar charts in the terminal
  • progress – Flexible ASCII progress bars
  • insight – Send anonymous reports to Google Analytics using metrics to help you understand how your tool is being used
  • cli-cursor – Show or hide CLI cursor
  • columnify – Print console text output by column, supporting cell decoration
  • cli-columns – Column output Unicode and Ansi-safe
  • cfonts – Sexy ASCII fonts in the console
  • multispinner – Diverse, independently controlled CLI spinners
  • omelette – Autocomplete in shell
  • cross-env – Cross-platform environment variable settings
  • shelljs – Portable Unix shell commands
  • sudo-block – Prevent users from using your program with root privileges
  • loud-rejection – Force prompts for unhandled promise rejections errors
  • sparkly – Generate mini charts ▁▂▃▅▂▇
  • Bit – Create, maintain, find, and use small modules and components in repositories
  • gradient-string – Add beautiful color gradients to terminal output
  • oclif – CLI framework, including parser, auto-documentation, testing, and plugins
  • term-size – Accurately get terminal window size
  • Cliffy – Interactive framework for CLI

Build Tools

  • parcel – Fast, zero-configuration web application build tool
  • webpack – A bundler for the browser
  • rollup – Next-generation ES2015 bundling build tool
  • gulp – Programmable, streaming fast build system
  • Broccoli – Fast, reliable resource pipeline supporting fixed-time recompilation and compact build definitions
  • Brunch – A frontend web application build tool with simple declarative configuration, fast incremental compilation, and custom workflows
  • Start – A functional task manager with shareable presets
  • ygor – A Promise-based task execution tool – when there is too much work to accomplish with npm run
  • FuseBox – The preferred fast build system that supports TypeScript and combines the powerful features of webpack, JSPM, and SystemJS
  • pkg – Package your Node.js project into an executable file

Hardware

  • johnny-five – Arduino framework based on Firmata
  • serialport – Read and write serial ports
  • 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 notifications, and interrupt handling on Raspberry Pi
  • gps – NMEA parser for handling GPS reception

Templates

  • marko – An HTML-based template engine that compiles templates into CommonJS modules, supporting streams, asynchronous rendering, and custom tags
  • nunjucks – A template engine inspired by Jinja2 with features like inheritance and asynchronous control
  • handlebars.js – A superset of Mustache templates that adds powerful features like helpers and more advanced blocks
  • EJS – A super simple template language.
  • Pug – A high-performance template engine influenced by Haml.

Web Frameworks

  • Hapi – A framework for creating applications and services
  • Koa – A framework designed by the Express team, aimed at providing a smaller, more expressive, and robust foundation for web applications and APIs
  • Express – A powerful web application framework for building single-page, multi-page, and hybrid web applications
  • Feathers – A microservices framework inspired by Express
  • LoopBack – A powerful framework for creating REST APIs and easily connecting to backend data sources
  • Meteor – A super simple pure JavaScript web framework that keeps data synchronized between the program database and user interface. (You might like awesome-meteor)
  • Restify – Helps you build correct REST web services
  • ThinkJS – A WebSockets REST API framework that supports ES2015+
  • ActionHero – A framework for creating reusable, scalable APIs for TCP sockets, WebSocket, and HTTP clients
  • Next.js – A simplified JavaScript server-side rendering framework
  • Nuxt.js – A server-side rendering framework for Vue.js
  • seneca – A toolkit for writing microservices
  • AdonisJs – A true MVC framework for Node.js based on dependency injection and IoC container technology.
  • Hemera – Reliable and fault-tolerant microservices built on NATS
  • Micro – An ultra-simplified microservices framework implemented with asynchronous
  • Moleculer – A fast and powerful microservices framework
  • Fastify – A fast and low-overhead web framework
  • Nest – A framework for building efficient and scalable server-side applications inspired by Angular
  • Zeronode – Minimal building blocks for Node.js microservices
  • TypeGraphQL – A modern framework for building GraphQL APIs with TypeScript using classes and decorators
  • TinyHttp – A modern, fast web framework similar to Express
  • Marble.js – A functional programming framework for building server-side applications based on TypeScript and RxJS

Documentation Related

  • documentation.js – API documentation generator supporting ES2015+ and flow comments
  • ESDoc – Documentation generator for ES2015, with additional test code and documentation coverage assessment
  • Docco – A documentation generator that mixes comments in the code into HTML
  • JSDoc – API documentation generator similar to JavaDoc or PHPDoc
  • Docusaurus – A documentation generator based on React and Markdown, with multilingual and version control features

File Systems

  • del – Delete files/folders using globs
  • globby – Glob files supporting multiple patterns
  • cpy – File copying
  • rimraf – Recursive delete like rm -rf
  • make-dir – Recursively create directories like mkdir -p
  • graceful-fs – Enhanced version of the fs module
  • chokidar – File system watcher that listens to fs.watch and fs.watchFile like native fsevents on macOS
  • find-up – Find files up the parent directory
  • proper-lockfile – Inter-process and inter-machine lockfile tool
  • load-json-file – Read and parse JSON files
  • write-json-file – Automatically serialize and write JSON to files
  • fs-write-stream-atomic – Atomic operation similar to fs.createWriteStream()
  • filenamify – Convert strings to valid filenames
  • lnfs – Force create symbolic links like ln -fs
  • istextorbinary – Check if a file is text or binary
  • fs-jetpack – A completely redesigned, user-friendly file system API for everyday use
  • fs-extra – The fs module with additional methods
  • pkg-dir – Find the root directory of an npm package
  • filehound – A flexible, fluent interface for file system searching
  • move-file – A tool to move files that can even work across devices
  • tempy – Get random paths for temporary files or directories

Flow Control

  • Promises
    • More
    • Bluebird – A Promise library dedicated to innovative features and performance
    • pify – Convert callback-style functions to Promise style
    • delay – Delay execution of a Promise
    • promise-memoize – A Promise return value caching tool with expiration and preloading features
    • valvelet – A tool to limit the access frequency of Promises
    • p-map – A Map method that can use Promises
  • Observables
    • zen-observable – An implementation of Observables
    • RxJS – Reactive programming
    • observable-to-promise – Convert Observable to Promise
    • More…
  • Streams
    • Highland.js – Easily manage synchronous and asynchronous code using standard JavaScript and Node-like streams
  • Callbacks
    • each-async – Asynchronous concurrent iterator, like forEach
    • async – Provides simple, powerful features to handle asynchronous issues
  • Channels
    • js-csp – Continuous communication for JavaScript (like Clojurescript core.async or Go)

File Streams

  • through2 – A lightweight stream transformer based on streams2, avoiding explicit subclass noise
  • from2 – A convenient wrapper for ReadableStream, inspired by through2
  • get-stream – Get streams as strings or Buffers
  • into-stream – Convert buffer/string/array/object into streams
  • duplexify – Convert writable and readable streams into a single stream2 duplex stream
  • pumpify – Combine a series of streams into a single duplex stream
  • peek-stream – Transform streams that let you preview the first line before deciding how to parse it
  • binary-split – Split stream by line breaks (or any delimiter)
  • byline – An ultra-simple line-reading stream reader
  • first-chunk-stream – Transform the first chunk in a stream
  • pad-stream – Pad each line in a stream
  • multistream – Merge multiple streams into one stream
  • stream-combiner2 – Output stream from the pipeline
  • readable-stream – Core implementation mirror of Streams2 and Streams3
  • through2-concurrent – Concurrently transform object streams

Real-Time

  • µWebSockets – A highly scalable WebSocket server and client library
  • Socket.io – Implement event-based real-time bidirectional communication
  • Faye – A real-time client-server message bus based on the Bayeux protocol
  • SocketCluster – A scalable HTTP + WebSocket engine that can run on multiple CPU cores
  • Primus – An abstraction layer for real-time frameworks to prevent module locking
  • deepstream.io – A scalable real-time microservices framework
  • Kalm – Low-level socket routing and middleware framework
  • MQTT.js – MQTT client – a Pub-sub based messaging protocol built on TCP/IP
  • rpc-websockets – JSON-RPC 2.0 implemented based on WebSocket
  • Aedes – An MQTT broker that can run on any streaming server

Images

  • sharp – An ultra-fast module for resizing JPEG, PNG, WebP, and TIFF images
  • image-type – Detect image types of Buffer / Uint8Array
  • gm – A wrapper for GraphicsMagick and ImageMagick
  • lwip – A lightweight image processor that does not require ImageMagick
  • pica – A lightweight, high-performance pure JS image resizer (lanczos3), replacing canvas drawImage() when pixelation is not allowed
  • jimp – Image processing in pure JavaScript
  • probe-image-size – Get sizes of most image formats without fully downloading them
  • qrcode – QR code and barcode generator

Text

  • iconv-lite – Convert character encoding.
  • string-length – Get the true length of a string – correctly calculate asterisks and ignore ansi escape codes.
  • camelcase – Convert hyphen/period/underscore/space-separated strings to camel case, example: foo-bar → fooBar.
  • escape-string-regexp – Escape RegExp special characters.
  • execall – Find multiple RegExp matches in a string.
  • splice-string – Remove or replace a part of a string Array#splice.
  • indent-string – Indent each line in a string.
  • strip-indent – Remove leading whitespace from each line in a string.
  • detect-indent – Detect code indentation.
  • he – HTML entity encoder/decoder.
  • i18n-node – A simple translation module with dynamic JSON storage.
  • babelfish – i18n, plural syntax is very simple.
  • matcher – Simple wildcard matching.
  • unhomoglyph – Normalize visually similar unicode characters.
  • i18next – Internationalization framework.
  • nanoid – A small, secure, URL-friendly, unique string ID generator.

Numbers

  • random-int – Generate random integers
  • random-float – Generate random floating-point numbers
  • unique-random – Generate continuously unique random numbers
  • round-to – Round numbers to a specified number of decimal places: 1.2341.2

Mathematics

  • ndarray – Multi-dimensional arrays
  • mathjs – A large library of mathematical formulas
  • math-clamp – Get the middle value among three numbers
  • algebra – Algebra
  • multimath – Core for fast image mathematics created using WebAssembly and JS

Dates

  • Luxon – A library for handling dates and times
  • date-fns – Modern date tools
  • Moment.js – Parse, validate, manipulate, and display dates
  • Day.js – An optional date library using Immutable outside of Moment.js
  • dateformat – Date formatting
  • tz-format – Format time with timezone: 2015-11-30T10:40:35+01:00
  • cctz – Fast parsing, formatting, and timezone conversion tool

URLs

  • normalize-url – Normalize URLs
  • humanize-url – Make URLs readable: http://sindresorhus.comsindresorhus.com
  • url-unshort – Restore short addresses
  • speakingurl – Generate slugs from strings through transliteration
  • linkify-it – A link pattern detector with full Unicode support
  • url-pattern – A simpler pattern matching for URLs and other strings than regex
  • embedza – Create HTML snippets/embeds from URLs using information from oEmbed, Open Graph, and meta tags

Data Validation

  • joi – Object schema description language and validator for JavaScript objects
  • is-my-json-valid – Ultra-fast JSON format validation tool
  • property-validator – Property validation tool for Express
  • schema-inspector – JSON API cleaning and validation
  • ajv – The fastest JSON schema validator supporting v5, v6, and v7 schemas
  • Superstruct – A simple base JavaScript and TypeScript data validator

Parsing

  • remark – A plugin-based Markdown processor
  • markdown-it – A Markdown parser that fully supports CommonMark, extensions, and syntax plugins
  • parse5 – A fast full-featured HTML parser that is specification-compliant
  • strip-json-comments – Remove comments from JSON
  • strip-css-comments – Remove comments from CSS
  • parse-json – A JSON handling tool with better error messages
  • URI.js – URL conversion tool
  • PostCSS – CSS parsing and compression tool
  • JSONStream – Stream processing for JSON.parse and stringify
  • csv-parser – A streaming CSV parser designed to be faster than any other tool
  • PEG.js – A simple parser generator with excellent error reporting
  • x-ray – Web crawling tool
  • nearley – A simple, fast, and powerful JavaScript parser
  • binary-extract – A tool to extract a value from a JSON buffer without parsing the entire object
  • Stylecow – A tool for parsing, manipulating, and transforming modern CSS with extensible plugins, making it compatible with all browsers
  • js-yaml – A fast YAML parser
  • xml2js – A converter from XML to JavaScript objects
  • Jison – A friendly JavaScript parser generator. Similar in thought to 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 – A very fast and feature-rich JavaScript parser building toolkit
  • fast-xml-parser – Validate and parse XML

Humanization

  • pretty-bytes – Convert byte counts into readable strings: 13371.34 kB
  • pretty-ms – Convert milliseconds into readable time strings: 133700000015d 11h 23m 20s
  • ms – A compact millisecond conversion tool
  • pretty-error – Simplified error messages
  • read-art – Extract readable content from any page

Compression

  • yazl – Compression
  • yauzl – Decompression
  • Archiver – A file archiving tool with streaming interface supporting ZIP and TAR formats
  • pako – A high-speed zlib port for JavaScript (deflate, inflate, gzip)
  • tar-stream – A streaming tar parser and generator, see also tar-fs.
  • decompress – A decompression module that supports tar, tar.gz, and zip files out of the box

Networking

  • get-port – Get a free port
  • ipify – Get your public IP address
  • getmac – Get the MAC address of your computer
  • DHCP – DHCP client and server
  • netcat – Pure JS implementation of the Netcat port

Databases

  • Database Drivers
    • PostgreSQL – PostgreSQL client implemented in pure JavaScript with native libpq
    • Redis – Redis client
    • LevelUP – LevelDB
    • MySQL – MySQL client
    • couchdb-nano – CouchDB client
    • Aerospike – Aerospike client
    • Couchbase – Couchbase client
    • MongoDB – MongoDB driver
  • ODM / ORM
    • Sequelize – ORM supporting PostgreSQL, SQLite, MySQL, and more databases
    • Bookshelf – Backbone.js style ORM for PostgreSQL, MySQL, and SQLite3
    • Massive – PostgreSQL data access tool
    • Mongoose – Elegant MongoDB object modeling
    • Waterline – A tool agnostic to data stores that greatly simplifies interaction with one or more databases
    • OpenRecord – ORM for PostgreSQL, MySQL, SQLite3, and RESTful data stores similar to ActiveRecord
    • pg-promise – A PostgreSQL framework using native SQL based on Promises
    • slonik – A PostgreSQL client with strict types, detailed logging, and assertions
    • Objection.js – A lightweight ORM based on the SQL query generator Knex
    • TypeORM – ORM supporting PostgreSQL, MariaDB, MySQL, SQLite, and more databases
    • MikroORM – A TypeScript data-mapping based ORM that uses unit of work and identity map patterns, supporting MongoDB, PostgreSQL, MySQL, and SQLite
    • Prisma – A modern database access method that generates types and is type-safe for TypeScript, supporting PostgreSQL, MySQL, and SQLite
  • Query Builder
    • Knex – A query builder for PostgreSQL, MySQL, and SQLite3 that is flexible, portable, and easy to use
  • Others
    • NeDB – An embedded persistence database written in JavaScript
    • Lowdb – A small JavaScript database supported by Lodash.
    • Keyv – A simple key-value store that supports multiple backends
    • Finale – Generate RESTful endpoints based on Sequelize models
    • database-js – A wrapper with JDBC-like database connection support for multiple databases
    • Mongo Seeding – Populate MongoDB databases using JavaScript and JSON files
    • @databases – A pure SQL query method that avoids SQL injection risks, supporting PostgreSQL, MySQL, and SQLite3

Testing

  • AVA – A future-facing test runner
  • Mocha – A feature-rich testing framework that makes asynchronous testing simple and fun
  • nyc – A code coverage tool built on istanbul, usable in subprocesses.
  • tap – TAP testing framework
  • tape – TAP production testing
  • power-assert – Provides descriptive assertion messages through the standard assert interface
  • Mochify – Test-driven development based on Browserify, Mocha, PhantomJS, and WebDriver
  • trevor – Run tests against multiple versions of Node.js without manually switching versions or pushing to Travis CI
  • loadtest – Run load tests for web applications using automated APIs
  • Sinon.JS – Test data mocking
  • navit – PhantomJS/SlimerJS wrapper for simplifying browser testing scripts
  • Nock – Mock HTTP requests and exceptions
  • intern – A code testing stack
  • toxy – A traceable HTTP proxy for simulating fault scenarios and network conditions
  • hook-std – Hooks and modifiers for stdout/stderr
  • testen – Run local tests against multiple versions of Node.js using NVM
  • Nightwatch – An automated UI testing framework based on Selenium WebDriver
  • WebdriverIO – Automated testing based on the WebDriver protocol
  • Jest – Simple JavaScript testing
  • TestCafe – Automated browser testing
  • abstruse – Continuous integration server
  • CodeceptJS – End-to-end testing
  • Puppeteer – Headless Chrome
  • Playwright – A headless browser for Chromium, WebKit, and Firefox kernels with a single API
  • nve – Run any command on local multiple versions of Node.js
  • axe-core – An automated web UI testing engine
  • testcontainers-node – Provides lightweight, on-demand instances of regular databases, web browsers, or any instances that can run in Docker containers

Security

  • upash – A unified API for all password hashing algorithms
  • themis – A multi-language framework that makes typical cryptographic schemes easy to use: static data, verified data exchange, transport protection, authentication, etc.
  • GuardRails – A GitHub application that provides security feedback in requests
  • rate-limiter-flexible – Defense against brute force and DDoS attacks
  • crypto-hash – Asynchronous non-blocking hash
  • jose-simple – Encrypt and decrypt data using the JOSE (JSON Object Signing and Encryption) standard

Benchmarking

  • Benchmark.js – A benchmarking library that supports high-resolution counters and returns meaningful statistical results
  • matcha – A simplified benchmarking implementation

Code Compression

  • babili – An ES2015+ compression library based on the Babel toolchain
  • UglifyJS2 – JavaScript compression tool
  • clean-css – CSS compression tool
  • minimize – HTML compression tool
  • imagemin – Image compression tool

Authentication

  • Passport – Simple, unobtrusive authentication
  • Grant – Middleware for permissions verification supporting Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel, and other libraries

Authorization

  • CASL – Isomorphic authorization for UI and API
  • node-casbin – An authorization library that supports access control models (such as ACL, RBAC, and ABAC)

Email

  • Nodemailer – The fastest way to handle emails
  • emailjs – Send text/HTML emails with attachments to any SMTP server
  • email-templates – Create, preview, and send custom emails
  • MJML – A markup language designed to reduce the difficulty of creating responsive emails

Task Queues

  • bull – Continuous jobs and message queues
  • agenda – Job scheduling tool based on MongoDB
  • idoit – A queue engine with advanced job control based on Redis
  • node-resque – A job queue based on Redis
  • rsmq – A message queue based on Redis
  • bee-queue – A high-performance task queue based on Redis
  • RedisSMQ – A simple high-performance Redis message queue with real-time monitoring capabilities
  • sqs-consumer – Build applications based on Amazon Simple Queue Service (SQS) without boilerplate
  • better-queue – A simple and efficient job queue that does not require Redis

Node.js Management

  • n – Node.js version control
  • nave – Node.js virtual environment
  • nodeenv – Node.js virtual environment compatible with Python virtualenv
  • nvm for Windows – Windows node version control tool
  • nodenv – A version manager similar to Ruby rbenv that supports automatic version switching

Natural Language Processing

  • retext – An extensible natural language system
  • franc – Detect the language of text
  • leven – Use the Levenshtein distance algorithm to detect differences between two strings
  • natural – Natural language facilities
  • nlp.js – Build bots with entity extraction, sentiment analysis, automatic language recognition, and more

Process Management

  • PM2 – Advanced process management tool
  • nodemon – Watch for code changes and automatically restart the server
  • node-mac – Run scripts as Mac daemon and output logs to console
  • node-linux – Run scripts as native system services and output logs to syslog
  • node-windows – Run scripts as Windows services and output logs to the event viewer
  • supervisor – Restart scripts when they crash or when *.js files change
  • Phusion Passenger – A user-friendly process management tool that integrates directly into Nginx

Automation

  • robotjs – Desktop automation: control mouse, keyboard, and read screen
  • nut.js – Cross-platform native GUI automation/testing framework with image matching integrated with Jest

AST

  • Acorn – A lightweight, fast JavaScript parser
  • babel-parser – A JavaScript parsing tool for Babel
  • cherow – A JavaScript parser focused on performance and stability

Static Site Generation

  • Wintersmith – A flexible, minimalist, multi-platform static site generator
  • Assemble – A static site generator using Node.js, Grunt.js, and Yeoman
  • DocPad – A static site generator with dynamic capabilities and a huge plugin ecosystem
  • Phenomic – A modern static site generator based on React and the Webpack ecosystem
  • docsify – A Markdown document site generator
  • Charge – A zero-configuration static site generator using JSX and MDX

Content Management Systems

  • KeystoneJS – A CMS and web application platform based on Express and MongoDB
  • ApostropheCMS – A content management system based on Express and MongoDB that emphasizes intuitive frontend content editing and management
  • Strapi – A content management framework (headless-CMS) for building powerful APIs
  • Tipe – A developer-oriented content management system built on GraphQL and REST APIs using schema files
  • Factor – A dashboard framework and headless CMS based on Vue.js
  • AdminBro – Automatically generate admin interfaces for all your resources

Forums

  • nodeBB – A forum platform for the modern web

Blogging

  • Ghost – A simple and powerful publishing platform
  • Hexo – A fast, simple, and powerful blogging framework

Weird

  • cows – ASCII cows
  • superb – Get vocabulary that expresses “awesome”
  • cat-names – Get popular cat names
  • dog-names – Get popular dog names
  • superheroes – Get names of superheroes
  • supervillains – Get names of supervillains
  • cool-ascii-faces – Get cool ASCII emoticons
  • cat-ascii-faces – ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”
  • nerds – Get data on nerdy topics like Harry Potter, Star Wars, Pokémon

Serialization

  • snappy – A binding for Google’s Snappy compression library
  • protobuf – Protocol buffers
  • compactr – Compactr protocol

Others

  • execa – Better than child_process
  • cheerio – A fast, flexible, server-side jQuery-inspired manipulation tool
  • Electron – Develop cross-platform desktop applications using web technologies (You might like awesome-electron)
  • open – Open websites, files, executables, etc.
  • hasha – Make hashing simple, get the hash of buffers/strings/streams/files
  • dot-prop – Get a nested object’s property using . paths
  • onetime – Execute one-time functions
  • mem – A memoization function – an optimization technique that speeds up consecutive function calls by caching the results of function executions for the same input
  • import-fresh – Bypass cache when calling modules
  • strip-bom – Remove UTF-8 BOM issues from strings/Buffers/Streams
  • os-locale – Get system locale
  • ssh2 – SSH2 client and server module
  • adit – SSH-related tools
  • import-lazy – Lazily load a module
  • file-type – Get the file type of a Buffer
  • Bottleneck – A rate limiter that makes traffic control easy
  • ow – Function parameter validation
  • webworker-threads – A lightweight Web Worker API using native threads
  • clipboardy – Access the system clipboard (copy and paste)
  • node-pre-gyp – A tool that simplifies the installation of Node.js C++ plugins from binary releases
  • opencv – OpenCV bindings for JavaScript, a computer graphics processing library
  • dotenv – Load environment variables from .env files.
  • remote-git-tags – Get tags from remote git repositories
  • semver – Semantic versioning parser
  • Faker.js – A bulk data generation tool for testing (recommended reading: “28,000 Stars! The artifact for generating fake content: faker.js”)
  • nodegit – Native Node Git tools
  • json-strictify – Safely serialize values to JSON without losing data or entering infinite loops
  • resolve-from – Execute a module’s resolve method from a given path
  • simplecrawler – An event-driven web crawler
  • jsdom – JavaScript implementation of HTML and DOM
  • hypernova – Server-side rendering of JavaScript views
  • @sindresorhus/is – Check if values and types match
  • env-dot-prop – Get, set, or delete nested properties of process.env using . paths
  • emittery – A simple and modern async event emitter
  • node-video-lib – A video tool library written in pure JavaScript for processing MP4 and FLV video files and creating MPEG-TS chunks for HLS streams
  • basic-ftp – FTP/FTPS client
  • cashify – Currency conversion
  • genepi – Automatically generate Node.js addons from C++ code
  • husky – Create Git hook scripts
  • patch-package – Fix and maintain npm dependencies
  • editly – Declarative video editing API

Click ‘Look’ to support Comprehensive Node.js Resource Compilation with 40K Stars!

Leave a Comment