Click on the above Frontend Q to follow the public account
Reply with Join Group to join the Frontend Q technical exchange group
Author @前哨君 | Address @https://github.com/jobbole/awesome-nodejs-cn Since WeChat does not support external links, you can click “Read the original” at the end of the article or open the GitHub address to see more detailed resources.
[Guide]: Node.js is an open-source, cross-platform JavaScript runtime tool for writing servers and command-line applications.
awesome-nodejs is a Node.js resource list initiated and maintained by sindresorhus
. The content includes: command-line tools, logging, debugging, HTTP, build tools, file systems, templates, web frameworks, flow control, text, images, and data validation, etc.
This list is considered the most comprehensive Node.js resource compilation, with nearly 40,000 Stars
on GitHub.
The Chinese version is maintained and updated by the 开源前哨
and 前端大全
WeChat public account teams. You are welcome to follow us on GitHub. This Chinese version resource library will be regularly synced and updated here.
Participants in this project
-
Maintainers: “开源前哨” and “前端大全” WeChat public account teams. “开源前哨” regularly shares the latest, interesting, and popular open-source projects in their 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 System -
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 Queue -
Node.js Management -
Natural Language Processing -
Process Management -
Automation -
AST -
Static Site Generation -
Content Management Systems -
Forums -
Blog Writing -
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 – 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 – Clean, readable, reliable Bitcoin library -
Bitcore – Pure and powerful Bitcoin library -
PDFKit – PDF generation library -
turf – Modular geospatial processing and analysis engine -
webcat – Use your GitHub private/public key for peer-to-peer web instant communication across networks -
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. network) 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 – Better npm publish
-
npm-name – Check if a package name is available on npm -
gh-home – Open the GitHub homepage of the project in the current directory -
npm-home – Open the npm homepage of a package -
trash – 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 – Better top with beautiful charts -
empty-trash – Empty the trash 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 with JavaScript happiness style -
Standard – JavaScript standard style – standardize all styles -
ESLint – Pluggable linting utility for JavaScript -
dev-time – Get the current 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 functionality -
bcat – Pipe command output to a web browser -
normit – Use voice synthesis in your terminal for Google Translate -
fkill – Cross-platform process killer command -
pjs – Fast filtering, mapping, and accumulator 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 -
alex – Capture inappropriate expressions in writing -
pen – Write Markdown in your favorite editor with real-time preview in the browser -
subdownloader – Subtitle downloader for movies and TV shows -
dark-mode – Toggle macOS dark mode -
iponmap – IP address lookup tool -
Jsome – Pretty print JSON with custom colors and indentation -
itunes-remote – Interactive control for iTunes -
mobicon – Mobile app icon generator -
mobisplash – Mobile app splash screen generator -
diff2html-cli – Generate beautiful HTML to display the results of git diff commands -
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 for terminal environments -
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 – Currency exchange converter for 170 currencies -
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 – Better and faster Underscore.js, providing compatibility, flexibility, high performance, and other features utility library -
immutable – Immutable dataset -
Ramda – A toolkit focused on data immutability and pure functional style, leveraging parameter currying and automatic currying for flexible function composition. -
Folktale – A library for generic functional programming in JavaScript that allows 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 extra overhead -
Bacon.js – Functional reactive programming -
RxJS – Functional reactive library for transforming, composing, 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 mock customizable routing backend service using JSON files or JavaScript objects -
cacheable-request – Wrap raw HTTP requests with RFC-compliant caching support. -
gotql – GraphQL request library built on got -
global-agent – Global HTTP/HTTPS proxy configurable with environment variables -
smoke – Recordable file-based mock HTTP service
Debugging / Analysis
-
ndb – Tool to enhance the Chrome DevTools debugging experience -
ironNode – Node.js debugger out of the box with ES2015 support -
node-inspector – Debugger based on Blink Developer Tools -
debug – Lightweight debugging tool -
why-is-node-running – When you don’t know why Node.js is not exiting properly… -
njsTrace – Detect and trace code, view all function calls, parameters, return values, and time spent in each function -
vstream – Inspect data streams and display through pipes -
stackman – Enhanced error stack tracing for thrown exceptions -
locus – Start a REPL of 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 and inspecting their objects -
thetool – Capture different CPU, memory, and other resource usage of 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 workflow
Logging
-
pino – Ultra-fast logger inspired by Bunyan
-
winston – 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, rich and colorful 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 the previous output, used for making progress bars or animations -
Ink – Command-line interactive program based on React -
listr – Terminal task list -
conf – A simple tool for program or module configuration management -
ansi-escapes – Manipulate terminal ANSI escape codes -
log-symbols – Log different levels of logs with different colored symbols -
figures – Unicode symbols supporting 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 time running the process -
blessed – Library similar to Curses -
Inquirer.js – Interactive command-line prompt tool -
yn – Parse strings containing yes/no semantics into boolean values -
cli-table3 – Pretty 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 being used -
cli-cursor – Show or hide the CLI cursor -
columnify – Print console text in column output, supporting cell decoration -
cli-columns – Column-style output Unicode and Ansi-safe -
cfonts – Sexy ASCII fonts in the console -
multispinner – Diverse, independently controllable CLI spinners -
omelette – Shell autocompletion -
cross-env – Cross-platform environment variable setting -
shelljs – Portable Unix shell commands -
sudo-block – Prevent users from using your program with root permissions -
loud-rejection – Force prompt for unhandled promise rejections -
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 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 – Browser-oriented bundler -
rollup – Next-generation ES2015 bundler -
gulp – Programmatic, streaming fast build system -
Broccoli – Fast and reliable resource pipeline supporting fixed-time recompilation and compact build definitions -
Brunch – Frontend web application build tool with simple declarative configuration, fast incremental compilation, and custom workflows -
Start – 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 – The preferred fast build system that supports TypeScript combining 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 – HTML-based template engine that compiles templates into CommonJS modules and supports streams, asynchronous rendering, and custom tags -
nunjucks – 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 – Super simple template language. -
Pug – High-performance template engine influenced by Haml.
Web Frameworks
-
Hapi – Framework for building 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 backend data sources -
Meteor – An ultra-simple pure JavaScript web framework that keeps data in sync between the program database and the user interface. (You might like awesome-meteor) -
Restify – Helps you build proper REST web services -
ThinkJS – WebSockets REST API framework supporting ES2015+ -
ActionHero – A framework for creating reusable, scalable APIs for TCP sockets, WebSocket, and HTTP clients -
Next.js – Simplified JavaScript server-side rendering framework -
Nuxt.js – Vue.js server-side rendering framework -
seneca – 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-simple microservices framework implemented with async -
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 building GraphQL APIs using classes and decorators written 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 – Documentation generator that mixes comments in the code into HTML -
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 – Delete files/folders using globs -
globby – Glob files supporting multiple patterns -
cpy – File copy -
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
andfs.watchFile
like using nativefsevents
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, convenient 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 – Flexible, fluent interface for file system searching -
move-file – A tool for moving files that can even work across devices -
tempy – Get the path of temporary files or directories randomly
Flow Control
-
Promises -
More -
Bluebird – A Promise library dedicated to innovative features and performance -
pify – Convert callback-style functions to Promise style -
delay – Delay executing a Promise -
promise-memoize – A Promise return value caching tool with expiration time and preloading capabilities -
valvelet – A tool to limit the frequency of Promise access -
p-map – A Map method that can be used with Promises -
Observables -
zen-observable – Implementation of Observables -
RxJS – Reactive programming -
observable-to-promise – Convert Observable to Promise -
More… -
Streams -
Highland.js – Manage synchronous and asynchronous code easily using standard JavaScript and Node-like streams -
Callbacks -
each-async – Asynchronous concurrent iterator, like forEach -
async – Provides simple, powerful functionality 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 that avoids exposing 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 to streams -
duplexify – Convert writable and readable streams into a single stream2 duplex stream -
pumpify – Merge a series of streams into a single duplex stream -
peek-stream – Transform streams that allow you to preview the first line before deciding how to parse it -
binary-split – Line separator (or any delimiter) stream -
byline – Super simple line-by-line stream reader -
first-chunk-stream – Transform the first chunk in a stream -
pad-stream – Pad each line in the stream -
multistream – Merge multiple streams into one stream -
stream-combiner2 – Combine output streams from pipes -
readable-stream – Core implementation mirror of Streams2 and Streams3 -
through2-concurrent – Concurrently transform object streams
Real-time
-
µWebSockets – Highly scalable WebSocket server and client library -
Socket.io – Implement event-based real-time bidirectional communication -
Faye – Real-time client-server messaging bus based on the Bayeux protocol -
SocketCluster – 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 – Scalable real-time microservices framework -
Kalm – Low-level socket routing and middleware framework -
MQTT.js – MQTT client – a publish-subscribe messaging protocol built on TCP/IP -
rpc-websockets – JSON-RPC 2.0 implemented over WebSocket -
Aedes – A lightweight MQTT broker that can run on any stream server
Images
-
sharp – Ultra-fast module for resizing JPEG, PNG, WebP, and TIFF images -
image-type – Detect image type of Buffer / Uint8Array -
gm – Wrapper for GraphicsMagick and ImageMagick -
lwip – Lightweight image processor that does not require ImageMagick -
pica – Lightweight, high-performance pure JS image resizer (lanczos3), substitutes canvas drawImage()
when pixelation is not allowed -
jimp – Image processing in pure JavaScript -
probe-image-size – Get the size of most image formats without downloading them completely -
qrcode – QR code and barcode generator
Text
-
iconv-lite – Convert character encoding. -
string-length – Get the true length of a string – accurately calculate stars and ignore ansi escape codes. -
camelcase – Convert hyphen/period/underscore/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 spaces from each line of a string. -
detect-indent – Detect code indentation. -
he – HTML entity encoder/decoder. -
i18n-node – 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 – 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 – Multi-dimensional arrays -
mathjs – Huge math formula library -
math-clamp – Take the middle value of three numbers -
algebra – Algebra -
multimath – Core for creating fast image math using WebAssembly and JS
Dates
-
Luxon – Library for handling dates and times -
date-fns – Modern date tools -
Moment.js – Parse, validate, manipulate, and display dates -
Day.js – An alternative 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.com
→sindresorhus.com
-
url-unshort – Restore short URLs -
speakingurl – Generate slug from string through transliteration -
linkify-it – Link pattern detector with full Unicode support -
url-pattern – Pattern matching for URLs and other strings simpler 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 – Simple foundational JavaScript and TypeScript data validator
Parsing
-
remark – Plugin-based Markdown processor -
markdown-it – 100% CommonMark compliant Markdown parser with extensions and syntax plugins -
parse5 – Fast, fully compliant HTML parser -
strip-json-comments – Remove comments from JSON -
strip-css-comments – Remove comments from CSS -
parse-json – JSON handling tool with more error messages -
URI.js – URL transformation tool -
PostCSS – CSS parsing and minification 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 – Simple, fast, powerful JavaScript parser -
binary-extract – A tool to extract a value from a JSON buffer without parsing the entire object -
Stylecow – An extensible plugin tool for parsing, manipulating, and transforming modern CSS to be compatible with all browsers -
js-yaml – Fast YAML parser -
xml2js – Converter from XML to JavaScript objects -
Jison – 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 JavaScript parser building toolkit -
fast-xml-parser – Validate and parse XML
Humanization
-
pretty-bytes – Convert byte counts to readable strings: 1337
→1.34 kB
-
pretty-ms – Convert milliseconds to 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 an available port -
ipify – Get your public IP address -
getmac – Get your computer’s MAC address -
DHCP – DHCP client and server -
netcat – Pure JS implementation of Netcat
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 abstracts data storage, greatly simplifying interactions with one or more databases -
OpenRecord – ORM for PostgreSQL, MySQL, SQLite3, and RESTful data stores, similar to ActiveRecord -
pg-promise – Promise-based PostgreSQL framework using native SQL -
slonik – PostgreSQL client with strict types, detailed logging, and assertions -
Objection.js – Lightweight ORM based on the SQL query builder Knex -
TypeORM – ORM supporting PostgreSQL, MariaDB, MySQL, SQLite, and more databases -
MikroORM – Data-mapped ORM for TypeScript using unit of work and identity map patterns, supporting MongoDB, PostgreSQL, MySQL, and SQLite -
Prisma – A modern database access method that automatically generates types and is type-safe, can be used as an alternative to ORM, supporting PostgreSQL, MySQL, and SQLite -
Query Builder -
Knex – A query builder for PostgreSQL, MySQL, and SQLite3 designed to be flexible, portable, and easy to use -
Others -
NeDB – Embedded persistent database written in JavaScript -
Lowdb – A small JavaScript database supported by Lodash. -
Keyv – Simple key-value store supporting multiple backends -
Finale – RESTful endpoint generation 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 – Pure SQL query method that avoids SQL injection risks, supports PostgreSQL, MySQL, and SQLite3
Testing
-
AVA – Future-focused test runner -
Mocha – Feature-rich testing framework that makes asynchronous testing simple and fun -
nyc – Code coverage tool built on istanbul, can be used for subprocesses. -
tap – TAP testing framework -
tape – TAP production testing -
power-assert – Provides descriptive assertion messages through 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 modifies stdout/stderr -
testen – Run local tests against multiple versions of Node.js using NVM -
Nightwatch – Automated UI testing framework based on Selenium WebDriver -
WebdriverIO – Automated testing based on WebDriver protocol -
Jest – Simple JavaScript testing -
TestCafe – Automated browser testing -
abstruse – Continuous integration server -
CodeceptJS – End-to-end testing -
Puppeteer – Headless Chrome -
Playwright – 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 – Automated web UI testing engine -
testcontainers-node – Provides lightweight, ready-to-use conventional databases, web browsers, or any instance that can run in Docker containers
Security
-
upash – A unified API for all password hashing algorithms -
themis – A multi-language framework that makes typical encryption 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 – 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 – Benchmarking library that supports high-resolution counters and returns meaningful statistics -
matcha – Simplified benchmarking implementation scheme
Code Compression
-
babili – 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 – Permissions validation middleware supporting Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel, and other libraries
Authorization
-
CASL – Isomorphic authorization for UI and API -
node-casbin – Authorization library supporting access control models (such as 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 Queue
-
bull – Continuous job and message queue -
agenda – Job scheduling tool based on MongoDB -
idoit – Queue engine with advanced job control based on Redis -
node-resque – Job queue based on Redis -
rsmq – Message queue based on Redis -
bee-queue – High-performance task queue based on Redis -
RedisSMQ – 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 – Version manager similar to Ruby rbenv, supports 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, etc.
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 – Easy-to-use process management tool embedded 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 – Lightweight, fast JavaScript parser -
babel-parser – JavaScript parsing tool for babel -
cherow – JavaScript parser focused on performance and stability
Static Site Generation
-
Wintersmith – Flexible, minimalist, multi-platform static site generator -
Assemble – Static site generator using Node.js, Grunt.js, and Yeoman -
DocPad – Static site generator with dynamic capabilities and a huge plugin ecosystem -
Phenomic – Modern static site generator based on React and Webpack ecosystem -
docsify – Markdown document site generator -
Charge – Zero-configuration static site generator using JSX and MDX
Content Management Systems
-
KeystoneJS – CMS and web application platform based on Express and MongoDB -
ApostropheCMS – Content management system based on Express and MongoDB, emphasizing intuitive frontend content editing and management -
Strapi – A content management framework (headless-CMS) for building powerful APIs -
Tipe – Developer-focused content management system built on GraphQL and REST APIs using schema files -
Factor – Dashboard framework and headless CMS based on Vue.js -
AdminBro – Automatically generate admin interfaces for all your resources
Forums
-
nodeBB – Forum platform for modern web
Blog Writing
-
Ghost – Simple and powerful publishing platform -
Hexo – Fast, simple, and powerful blog framework
Oddities
-
cows – ASCII cows -
superb – Get words that express “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 – Binding 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 – Simple hashing tool to get hashes of buffers/strings/streams/files -
dot-prop – Get properties of a nested object using .
path notation -
onetime – Execute one-time functions -
mem – Memoization function – an optimization technique that caches the results of function calls with the same input to speed up consecutive calls -
import-fresh – Bypass the cache when invoking a module -
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 – Lazy 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 – 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++ addons from binary releases -
opencv – OpenCV wrapper for JavaScript, 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 – Tool for generating test data in bulk (Recommended reading: “28,000 Stars! The tool for generating fake content: faker.js”) -
nodegit – Git tool wrapped in native Node -
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 – 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 .
path notation -
emittery – Simple and modern asynchronous event emitter -
node-video-lib – 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 keep npm dependencies -
editly – Declarative video editing API

Previous Recommendations




