Hello everyone, I am the Programmer
No need to translate the official ChatGPT and Claude, as well as Midjourney, stable after-sales support is available.
Author @QianShaoJun | Address @https://github.com/jobbole/awesome-nodejs-cn
[Guide]:Node.js is an open-source, cross-platform JavaScript runtime tool for writing server-side applications and command-line tools.
The awesome-nodejs list is maintained by sindresorhus
and includes resources such as command-line tools, logging, debugging, HTTP, build tools, file systems, templates, web frameworks, process control, text, images, and data validation.
This list is known as the most comprehensive Node.js resource collection, with nearly 40,000 stars
on GitHub.
The Chinese version is maintained and updated by the Open Source Frontline
and Frontend All-in-One
WeChat public account teams. Feel free to follow on GitHub. This Chinese version of the resource repository will be updated regularly here.
Participants of This Project
-
Maintainers: “Open Source Frontline” and “Frontend All-in-One” WeChat public account team. “Open Source Frontline” regularly shares the latest, interesting, and popular open-source projects in the Zhihu column, each project comes with detailed introductions and examples. 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 System -
Process Control -
File Streams -
Real-Time -
Images -
Text -
Numbers -
Mathematics -
Dates -
URLs -
Data Validation -
Parsing -
User-Friendly -
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 -
Oddities -
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 – Explore a distributed file system that connects all computing devices using the same system files -
stackgl – Open software ecosystem for WebGL built on browserify and npm -
peerwiki – Wikipedia on all BitTorrent -
peercast – Video torrent playback software on Chromecast -
BitcoinJS – A concise, readable, and reliable Bitcoin library -
Bitcore – A pure and powerful Bitcoin library -
PDFKit – PDF generation library -
turf – Modular geospatial processing and analysis engine -
webcat – Use your GitHub private/public key to authenticate across networks using peer-to-peer web instant messaging -
NodeOS – The first operating system based on npm -
YodaOS – AI operating system -
Brain.js – Machine learning framework -
Pipcook – Front-end 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 read/write tool -
isomorphic-git – Git implemented in pure JavaScript
Command-Line Programs
-
np – A better npm publish
-
npm-name – Check if package name is available on npm -
gh-home – Open the GitHub homepage for the project in the current directory -
npm-home – Open the npm homepage for a package -
trash – A safer alternative to rm
-
speed-test – Test your internet connection speed and ping -
emoj – Find related emoji from text in the command line -
pageres – Capture 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 – standardize all styles -
ESLint – JavaScript pluggable linting tool -
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 web browser -
normit – Use voice synthesis in your terminal for Google Translate -
fkill – Cross-platform process killer command -
pjs – Fast filter, map and accumulator pipeline command implemented in JavaScript -
license-checker – License check for 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 with your favorite editor and provide real-time preview in the browser -
subdownloader – Subtitle downloader for movies and TV shows -
dark-mode – Toggle macOS dark mode -
iponmap – IP address locator -
Jsome – Print beautiful JSON with custom colors and indentation -
itunes-remote – Interactive control of iTunes -
mobicon – Mobile app icon generator -
mobisplash – Mobile app splash page generator -
diff2html-cli – Generate beautiful HTML to display the results of git diff command -
Cash – 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 API -
auto-install – Automatically install dependencies while writing code -
lessmd – Markdown previewer in the 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 the 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 the 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 library -
immutable – Immutable datasets -
Ramda – A toolkit focused on data immutability and pure functional style, achieving flexible function composition through parameter currying and automatic currying. -
Folktale – A library for general functional programming in JavaScript, allowing you to write elegant, modular applications with fewer bugs and more reusability -
Mout – The biggest difference between this library and other existing solutions is that you can choose to load only the modules/functions you need without additional overhead -
Bacon.js – Functional reactive programming -
RxJS – A functional reactive library for transforming, combining, and querying various types of data -
Lazy.js – A utility library similar to lodash/Underscore 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 – Provides a better interface for the built-in http
module -
gh-got – Provides a convenient wrapper for interacting with got
and the GitHub API -
axios – 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 fake customizable routing backend service using JSON files or JavaScript objects -
cacheable-request – Encapsulate raw HTTP requests with RFC-compliant caching support. -
gotql – GraphQL request library built on got -
global-agent – A global HTTP/HTTPS proxy configurable with environment variables -
smoke – Recordable file-based mock HTTP service
Debugging / Analysis
-
ndb – A tool to enhance 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 – Check data streams and display through pipes -
stackman – Enhance error stack tracing for thrown exceptions -
locus – Start a REPL with all accessible variables at runtime -
0x – A flame graph analysis tool -
ctrace – Optimize and enhance the tracing of system calls and signals -
leakage – Write memory leak tests -
llnode – A tool for “analyzing” crashed Node.js processes and inspecting 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 – Asynchronous logging library supporting multiple logging formats -
console-log-level – The simplest logger imaginable, supporting log levels and custom prefixes -
storyboard – End-to-end, layered, real-time, rich logging and descriptions -
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 overwriting previous outputs, useful for making 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 – Manipulate terminal with ANSI escape codes -
log-symbols – Log different levels of logs with different colored symbols -
figures – Unicode symbols supporting Windows CMD fallback scheme -
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 the string -
cli-truncate – Truncate strings to a specific width in the terminal -
first-run – Check if this is the first time running the process -
blessed – A library similar to Curses -
Inquirer.js – Interactive command-line prompt tool -
yn – Parse strings containing yes/no semantics to boolean values -
cli-table3 – Beautiful Unicode tables -
drawille – Draw in the terminal using Unicode Braille characters -
update-notifier – Notifications for upgrading 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 used -
cli-cursor – Show or hide the CLI cursor -
columnify – Print console text output in columns, supporting cell decoration -
cli-columns – Columnar output Unicode and Ansi-safe -
cfonts – Sexy ASCII fonts in the console -
multispinner – Diverse CLI spinners that can be independently controlled -
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 graphs ▁▂▃▅▂▇
-
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 parsers, 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 tool -
gulp – Programmable, streaming fast build system -
Broccoli – Fast, reliable resource pipeline supporting fixed-time recompilation and compact build definitions -
Brunch – Front-end 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 be done that npm run
is insufficient -
FuseBox – A fast build system that combines the powerful features of webpack, JSPM, and SystemJS with TypeScript support -
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 processing GPS reception
Templates
-
marko – HTML-based template engine that compiles templates into CommonJS modules and supports streaming, 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 advanced blocks -
EJS – 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 to provide 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 back-end data sources -
Meteor – A super simple pure JavaScript web framework that keeps data synchronized between the program database and the 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 – Vue.js server-side rendering framework -
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 written based on NATS -
Micro – An ultra-minimal microservices framework implemented asynchronously -
Moleculer – A fast and powerful microservices framework -
Fastify – A fast and low-overhead web framework -
Nest – A framework inspired by Angular for building efficient and scalable server-side applications -
Zeronode – Minimal building blocks for Node.js microservices -
TypeGraphQL – A modern framework for writing GraphQL APIs using classes and decorators in TypeScript -
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 annotations -
ESDoc – Documentation generator for ES2015, with additional test code and coverage evaluation -
Docco – Generates HTML that mixes comments in code -
JSDoc – API documentation generator similar to JavaDoc or PHPDoc -
Docusaurus – Documentation generator based on React and Markdown, with multilingual and version control features
File System
-
del – Remove files/folders using globs -
globby – Glob files with support for multiple patterns -
cpy – File copying -
rimraf – Recursive deletion like rm -rf
-
make-dir – Recursively create directories like mkdir -p
-
graceful-fs – Enhanced version of fs
module -
chokidar – A file system watcher that listens to fs.watch
andfs.watchFile
like using nativefsevents
on macOS -
find-up – Find files up the parent directories -
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 extra methods -
pkg-dir – Find the root directory of npm packages -
filehound – A flexible, fluent interface for file system search -
move-file – A file moving tool that can even work across devices -
tempy – Get a random path for temporary files or directories
Process 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 promises -
promise-memoize – A promise return value caching tool with expiration time and pre-loading features, search for the WeChat public account: Architect Guide, reply: Architect to receive materials. -
valvelet – A tool to limit the frequency of promise access -
p-map – A map method that can use promises -
Observables -
zen-observable – Implementation of Observables -
RxJS – Reactive programming -
observable-to-promise – Convert Observables to promises -
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 for handling 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 – Stream with line breaks (or any delimiter) -
byline – A 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 – Merge multiple streams into one stream -
stream-combiner2 – Combines streams from pipes -
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 – Implements event-based real-time bidirectional communication -
Faye – 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 lock-in -
deepstream.io – A scalable real-time microservices framework -
Kalm – Low-level socket routing and middleware framework -
MQTT.js – MQTT client – a pub-sub messaging protocol built on TCP/IP -
rpc-websockets – JSON-RPC 2.0 implemented over 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), used to replace canvas drawImage()
when pixelation is not allowed -
jimp – Image processing in pure JavaScript -
probe-image-size – Get the size of most image formats without fully downloading them -
qrcode – QR code and barcode generator
Text
-
iconv-lite – Convert character encodings. -
string-length – Get the real length of a string – correctly calculate asterisks and ignore ansi escape codes. -
camelcase – Convert hyphenated/dotted/underscored/space-separated strings to camel case, e.g.: foo-bar → fooBar. -
escape-string-regexp – Escape RegExp special characters. -
execall – Find multiple RegExp matches in a string. -
splice-string – Remove or replace part of a string Array#splice
. -
indent-string – Indent each line in a string. -
strip-indent – Remove leading whitespace from each line of 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.234
→1.2
Mathematics
-
ndarray – Multidimensional arrays -
mathjs – A huge math formula library -
math-clamp – Get the middle value of three numbers -
algebra – Algebra -
multimath – Core for fast image math created with 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 – A date library using Immutable as an alternative to 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 – Human-readable URL: http://sindresorhus.com
→sindresorhus.com
-
url-unshort – Unshorten short URLs -
speakingurl – Generate slugs from strings through transliteration -
linkify-it – 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 – 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 foundational 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, fully-featured, specification-compliant HTML parser -
strip-json-comments – Remove comments from JSON -
strip-css-comments – Remove comments from CSS -
parse-json – A JSON processing 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 – A 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 to make it compatible with all browsers -
js-yaml – Fast YAML parser -
xml2js – A converter from XML to JavaScript objects -
Jison – A friendly JavaScript parser generator, similar 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 toolkit for building JavaScript parsers -
fast-xml-parser – Validate and parse XML
User-Friendly
-
pretty-bytes – Convert byte counts into human-readable strings: 1337
→1.34 kB
-
pretty-ms – Convert millisecond counts into human-readable time strings: 1337000000
→15d 11h 23m 20s
-
ms – A tiny millisecond conversion tool -
pretty-error – Simplified error messages -
read-art – Extract readable content from any page
Compression
-
yazl – Compression -
yauzl – Decompression -
Archiver – File archiving tool with streaming interface, supporting ZIP and TAR formats -
pako – High-speed zlib port for JavaScript (deflate, inflate, gzip) -
tar-stream – Streaming tar parser and generator, see also tar-fs. -
decompress – Decompression module that supports tar
,tar.gz
, andzip
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 – A pure JS implementation of Netcat port
Databases
-
Database Drivers -
PostgreSQL – PostgreSQL client implemented in pure JavaScript and 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 that simplifies interactions with one or multiple databases, independent of data storage -
OpenRecord – An 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 builder Knex -
TypeORM – ORM supporting PostgreSQL, MariaDB, MySQL, SQLite, and more databases -
MikroORM – A TypeScript-based data-mapped ORM that uses unit of work and identity mapping patterns, supporting MongoDB, PostgreSQL, MySQL, and SQLite -
Prisma – A modern database access method that generates types in TypeScript and is type-safe, supporting PostgreSQL, MySQL, and SQLite -
Query Builder -
Knex – A flexible, portable, and easy-to-use query builder for PostgreSQL, MySQL, and SQLite3 -
Others -
NeDB – An embedded persistent database written in JavaScript -
Lowdb – A small JavaScript database powered by Lodash. -
Keyv – A simple key-value store that supports multiple backends -
Finale – Generate RESTful endpoints based on Sequelize models -
database-js – A wrapper for various databases with JDBC-like database connections -
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-focused test runner -
Mocha – A feature-rich testing framework that makes asynchronous testing simple and fun -
nyc – A code coverage tool built on Istanbul, usable for sub-processes. -
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 – Code testing stack -
toxy – A traceable HTTP proxy for simulating failure 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 that implements Chromium, WebKit, and Firefox kernels with a single API -
nve – Run any command on local multiple versions of Node.js -
axe-core – Automated web UI testing engine -
testcontainers-node – Provides lightweight, on-demand databases, web browsers, or any other instances that can run in Docker containers
Security
-
upash – Provides a unified API for all password hashing algorithms -
themis – A multi-language framework that makes typical cryptographic schemes easy to use: static data, validated data exchange, transport protection, authentication, etc. -
GuardRails – A GitHub application that provides security feedback in requests -
rate-limiter-flexible – Protection 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 – A compression library based on the Babel toolchain for ES2015+ -
UglifyJS2 – JavaScript compression tool -
clean-css – CSS compression tool -
minimize – HTML compression tool -
imagemin – Image compression tool
Authentication
-
Passport – Simple, seamless authentication -
Grant – Middleware for permission 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 supporting access control models (like ACL, RBAC, and ABAC)
-
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 – Job queue based on Redis -
rsmq – A Redis-based message queue with real-time monitoring capabilities -
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 code -
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, supporting automatic version switching
Natural Language Processing
-
retext – An extensible natural language system -
franc – Detect text language -
leven – Detect differences between two strings using the Levenshtein distance algorithm -
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 – Monitor code changes and automatically restart the server -
node-mac – Run scripts as Mac daemons and output logs to the 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 – An easy-to-use process management tool that directly embeds into Nginx
Automation
-
robotjs – Desktop automation: control mouse, keyboard, and read screen -
nut.js – A cross-platform native GUI automation/testing framework with image matching integrated with Jest
AST
-
Acorn – A lightweight, fast JavaScript parser -
babel-parser – 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 – Markdown documentation 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, emphasizing intuitive front-end content editing and management -
Strapi – A content management framework (headless-CMS) for building powerful APIs -
Tipe – A developer-oriented content management system based on GraphQL and REST API 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 modern web
Blogging
-
Ghost – A simple and powerful publishing platform -
Hexo – A fast, simple, and powerful blogging framework
Oddities
-
cows – ASCII cows -
superb – Get vocabulary expressing “excellent” meanings -
cat-names – Get popular cat names -
dog-names – Get popular dog names -
superheroes – Get superhero names -
supervillains – Get supervillain names -
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 – Bindings for Google Snappy compression library -
protobuf – Protocol buffers -
compactr – Compactr protocol
Others
-
execa – Better than child_process
-
cheerio – Fast, flexible, server-side manipulation tool inspired by jQuery -
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 hashes of buffers/strings/streams/files -
dot-prop – Get a nested property of an object using .
path -
onetime – Execute one-time functions -
mem – Memoization function – an optimization technique that speeds up consecutive function calls by caching the results of function executions with the same inputs -
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 – 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 – A JavaScript wrapper for OpenCV, a computer graphics processing library -
dotenv – Load environment variables from .env files. -
remote-git-tags – Get tags from git remote repositories -
semver – Semantic version parser -
Faker.js – A tool for bulk generating test data (Recommended reading: “28,000 Stars! The tool for generating fake content: faker.js”) -
nodegit – Native Node wrapper for 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 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 pure JavaScript library for handling 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
-
— The End — Follow the public account and reply to the keywords below to get Reply "Join Group" to join the Frontend Programmer Technical Exchange Group Reply "Interview" to get the latest large factory interview materials Reply "Resume" to get 3200 sets of resume templates Reply "TypeScript" to get in-depth TypeScript course Reply "uniapp" to get in-depth uniapp course Reply "Node" to get Nodejs+koa2 practical tutorial Reply "Architect" to get architect learning resources tutorial More tutorial resources are available, welcome to follow to get "Share, like, and see" support a wave 👍