is an open-source, cross-platform, JavaScript runtime for writing servers and command-line tools.     Contents - Official (#official) - Packages (#packages) - **Mad science** (#mad-science)  - **Command-line apps** (#command-line-apps)  - **Functional programming** (#functional-programming)  - **HTTP** (#http)  - **Debugging / Profiling** (#debugging--profiling)  - **Logging** (#logging)  - **Command-line utilities** (#command-line-utilities)  - **Build tools** (#build-tools)  - **Hardware** (#hardware)  - **Templating** (#templating)  - **Web frameworks** (#web-frameworks)  - **Documentation** (#documentation)  - **Filesystem** (#filesystem)  - **Control flow** (#control-flow)  - **Streams** (#streams)  - **Real-time** (#real-time)  - **Image** (#image)  - **Text** (#text)  - **Number** (#number)  - **Math** (#math)  - **Date** (#date)  - **URL** (#url)  - **Data validation** (#data-validation)  - **Parsing** (#parsing)  - **Humanize** (#humanize)  - **Compression** (#compression)  - **Network** (#network)  - **Database** (#database)  - **Testing** (#testing)  - **Security** (#security)  - **Benchmarking** (#benchmarking)  - **Minifiers** (#minifiers)  - **Authentication** (#authentication)  - **Authorization** (#authorization)  - **Email** (#email)  - **Job queues** (#job-queues)  - **Node.js management** (#nodejs-management)  - **Cross-platform integration** (#cross-platform-integration)  - **Natural language processing** (#natural-language-processing) - **Process management** (#process-management)  - **Automation** (#automation)  - **AST** (#ast)  - **Static site generators** (#static-site-generators)  - **Content management systems** (#content-management-systems)  - **Forum** (#forum)  - **Blogging** (#blogging)  - **Weird** (#weird)  - **Serialization** (#serialization)  - **Miscellaneous** (#miscellaneous)  - Package Manager (#package-manager) - Resources (#resources) - **Tutorials** (#tutorials)  - **Discovery** (#discovery)  - **Articles** (#articles)  - **Newsletters** (#newsletters)  - **Videos** (#videos)  - **Books** (#books)  - **Blogs** (#blogs)  - **Courses** (#courses)  - **Cheatsheets** (#cheatsheets)  - **Tools** (#tools)  - **Community** (#community)  - **Miscellaneous** (#miscellaneous-1) - Related lists (#related-lists) Official - Website (https://nodejs.org) - Documentation (https://nodejs.org/dist/latest/docs/api/) - Repository (https://github.com/nodejs/node) Packages Mad science - webtorrent (https://github.com/webtorrent/webtorrent) - Streaming torrent client for Node.js and the browser. - peerflix (https://github.com/mafintosh/peerflix) - Streaming torrent client. - ipfs (https://github.com/ipfs/helia) - Distributed file system that seeks to connect all computing devices with the same system of files. - stackgl (https://github.com/stackgl) - Open software ecosystem for WebGL, built on top of browserify and npm. - peerwiki (https://github.com/mafintosh/peerwiki) - All of Wikipedia on BitTorrent. - peercast (https://github.com/mafintosh/peercast) - Stream a torrent video to Chromecast. - BitcoinJS (https://github.com/bitcoinjs/bitcoinjs-lib) - Clean, readable, proven Bitcoin library. - Bitcore (https://github.com/bitpay/bitcore) - Pure and powerful Bitcoin library. - PDFKit (https://github.com/foliojs/pdfkit) - PDF generation library. - turf (https://github.com/Turfjs/turf) - Modular geospatial processing and analysis engine. - webcat (https://github.com/mafintosh/webcat) - p2p pipe across the web using WebRTC that uses your GitHub private/public key for authentication. - NodeOS (https://github.com/NodeOS/NodeOS) - The first operating system powered by npm. - YodaOS (https://github.com/yodaos-project/yodaos) - AI operating system. - Brain.js (https://github.com/BrainJS/brain.js) - Machine-learning framework. - Pipcook (https://github.com/alibaba/pipcook) - Front-end algorithm framework to create a machine learning pipeline. - Cytoscape.js (https://github.com/cytoscape/cytoscape.js) - Graph theory (a.k.a. network) modeling and analysis. - js-git (https://github.com/creationix/js-git) - JavaScript implementation of Git. - xlsx (https://github.com/SheetJS/sheetjs) - Pure JS Excel spreadsheet reader and writer. - isomorphic-git (https://github.com/isomorphic-git/isomorphic-git) - Pure JavaScript implementation of Git. Command-line apps - np (https://github.com/sindresorhus/np) - Better npm publish. - npm-name (https://github.com/sindresorhus/npm-name) - Check a package name's availability on npm. - gh-home (https://github.com/sindresorhus/gh-home) - Open the GitHub page of the repo in the current directory. - npm-home (https://github.com/sindresorhus/npm-home) - Open the npm page of a package. - trash (https://github.com/sindresorhus/trash) - Safer alternative to rm. - speed-test (https://github.com/sindresorhus/speed-test) - Test your internet connection speed and ping. - pageres (https://github.com/sindresorhus/pageres) - Capture website screenshots. - cpy (https://github.com/sindresorhus/cpy) - Copy files. - vtop (https://github.com/MrRio/vtop) - More better top, with nice charts. - empty-trash (https://github.com/sindresorhus/empty-trash) - Empty the trash. - is-up (https://github.com/sindresorhus/is-up) - Check whether a website is up or down. - is-online (https://github.com/sindresorhus/is-online) - Check if the internet connection is up. - public-ip (https://github.com/sindresorhus/public-ip) - Get your public IP address. - clipboard-cli (https://github.com/sindresorhus/clipboard-cli) - Copy & paste on the terminal. - XO (https://github.com/xojs/xo) - Enforce strict code style using the JavaScript happiness style. - ESLint (https://github.com/eslint/eslint) - The pluggable linting utility for JavaScript. - David (https://github.com/alanshaw/david) - Tells you when your package npm dependencies are out of date. - http-server (https://github.com/http-party/http-server) - Simple, zero-config command-line HTTP server. - Live Server (https://github.com/tapio/live-server) - Development HTTP-server with livereload capability. - bcat (https://github.com/kessler/node-bcat) - Pipe command output to web browsers. - normit (https://github.com/pawurb/normit) - Google Translate with speech synthesis in your terminal. - fkill (https://github.com/sindresorhus/fkill-cli) - Fabulously kill processes. Cross-platform. - pjs (https://github.com/danielstjules/pjs) - Pipeable JavaScript. Quickly filter, map, and reduce from the terminal. - license-checker (https://github.com/davglass/license-checker) - Check licenses of your app's dependencies. - browser-run (https://github.com/juliangruber/browser-run) - Easily run code in a browser environment. - tmpin (https://github.com/sindresorhus/tmpin) - Adds stdin support to any CLI app that accepts file input. - wallpaper (https://github.com/sindresorhus/wallpaper) - Change the desktop wallpaper. - pen (https://github.com/hatashiro/pen) - Live Markdown preview in the browser from your favorite editor. - dark-mode (https://github.com/sindresorhus/dark-mode) - Toggle the macOS Dark Mode. - Jsome (https://github.com/Javascipt/Jsome) - Pretty prints JSON with configurable colors and indentation. - mobicon (https://github.com/samverschueren/mobicon-cli) - Mobile app icon generator. - mobisplash (https://github.com/samverschueren/mobisplash-cli) - Mobile app splash screen generator. - diff2html-cli (https://github.com/rtfpessoa/diff2html-cli) - Pretty git diff to HTML generator. - trymodule (https://github.com/victorb/trymodule) - Try out npm packages in the terminal. - jscpd (https://github.com/kucherenko/jscpd) - Copy/paste detector for source code. - atmo (https://github.com/Raathigesh/Atmo) - Server-side API mocking. - auto-install (https://github.com/siddharthkp/auto-install) - Auto installs dependencies as you code. - cost-of-modules (https://github.com/siddharthkp/cost-of-modules) - Find out which dependencies are slowing you down. - localtunnel (https://github.com/localtunnel/localtunnel) - Expose your localhost to the world. - svg-term-cli (https://github.com/marionebl/svg-term-cli) - Share terminal sessions via SVG. - gtop (https://github.com/aksakalli/gtop) - System monitoring dashboard for the terminal. - themer (https://github.com/themerdev/themer) - Generate themes for your editor, terminal, wallpaper, Slack, and more. - carbon-now-cli (https://github.com/mixn/carbon-now-cli) - Beautiful images of your code — from right inside your terminal. - cash-cli (https://github.com/xxczaki/cash-cli) - Convert between 170 currencies. - taskbook (https://github.com/klaussinani/taskbook) - Tasks, boards & notes for the command-line habitat. - discharge (https://github.com/brandonweiss/discharge) - Easily deploy static websites to Amazon S3. - npkill (https://github.com/voidcosmos/npkill) - Easily find and remove old and heavy node_modules folders. Functional programming - lodash (https://github.com/lodash/lodash) - Utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js. - immutable (https://github.com/immutable-js/immutable-js) - Immutable data collections. - Ramda (https://github.com/ramda/ramda) - Utility library with a focus on flexible functional composition enabled by automatic currying and reversed argument order. Avoids mutating data. - Mout (https://github.com/mout/mout) - Utility library with the biggest difference between other existing solutions is that you can choose to load only the modules/functions that you need, no extra overhead. - RxJS (https://github.com/reactivex/rxjs) - Functional reactive library for transforming, composing, and querying various kinds of data. - Kefir.js (https://github.com/kefirjs/kefir) - Reactive library with focus on high performance and low memory usage. HTTP - got (https://github.com/sindresorhus/got) - Nicer interface to the built-in http module. - undici (https://github.com/nodejs/undici) - High performance HTTP client written from scratch with zero dependencies. - ky-universal (https://github.com/sindresorhus/ky-universal) - Universal HTTP client based on Fetch. - node-fetch (https://github.com/node-fetch/node-fetch) - window.fetch for Node.js. - axios (https://github.com/axios/axios) - Promise based HTTP client (works in the browser too). - superagent (https://github.com/visionmedia/superagent) - HTTP request library. - http-fake-backend (https://github.com/micromata/http-fake-backend) - Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes. - cacheable-request (https://github.com/lukechilds/cacheable-request) - Wrap native HTTP requests with RFC compliant cache support. - gotql (https://github.com/khaosdoctor/gotql) - GraphQL request library built on got (https://github.com/sindresorhus/got). - global-agent (https://github.com/gajus/global-agent) - Global HTTP/HTTPS proxy agent that is configurable using environment variables. - smoke (https://github.com/sinedied/smoke) - File-based HTTP mock server with recording abilities. - purest (https://github.com/simov/purest) - REST client. Debugging / Profiling - debug (https://github.com/debug-js/debug) - Tiny debugging utility. - why-is-node-running (https://github.com/mafintosh/why-is-node-running) - Node.js is running but you don't know why? - njsTrace (https://github.com/valyouw/njstrace) - Instrument and trace your code, see all function calls, arguments, return values, as well as the time spent in each function. - vstream (https://github.com/joyent/node-vstream) - Instrumentable streams mix-ins to inspect a pipeline of streams. - stackman (https://github.com/watson/stackman) - Enhance an error stacktrace with code excerpts and other goodies. - locus (https://github.com/alidavut/locus) - Starts a REPL at runtime that has access to all variables. - 0x (https://github.com/davidmarkclements/0x) - Flamegraph profiling. - ctrace (https://github.com/automation-stack/ctrace) - Well-formatted and improved trace system calls and signals. - leakage (https://github.com/andywer/leakage) - Write memory leak tests. - llnode (https://github.com/nodejs/llnode) - Post-mortem analysis tool which allows you to inspect objects and get insights from a crashed Node.js process. - thetool (https://github.com/sfninja/thetool) - Capture different CPU, memory, and other profiles for your app in Chrome DevTools friendly format. - swagger-stats (https://github.com/slanatech/swagger-stats) - Trace API calls and monitor API performance, health, and usage metrics. - NiM (https://github.com/june07/nim) - Manages DevTools debugging workflow. - dats (https://github.com/immobiliare/dats) - Minimalistic and zero-dependencies StatsD (https://github.com/statsd/statsd) client. Logging - pino (https://github.com/pinojs/pino) - Extremely fast logger inspired by Bunyan. - winston (https://github.com/winstonjs/winston) - Multi-transport async logging library. - console-log-level (https://github.com/watson/console-log-level) - The most simple logger imaginable with support for log levels and custom prefixes. - storyboard (https://github.com/guigrpa/storyboard) - End-to-end, hierarchical, real-time, colorful logs and stories. - consola (https://github.com/unjs/consola) - Console logger. Command-line utilities - chalk (https://github.com/chalk/chalk) - Terminal string styling done right. - meow (https://github.com/sindresorhus/meow) - CLI app helper. - yargs (https://github.com/yargs/yargs) - Command-line parser that automatically generates an elegant user-interface. - ora (https://github.com/sindresorhus/ora) - Elegant terminal spinner. - get-stdin (https://github.com/sindresorhus/get-stdin) - Easier stdin. - log-update (https://github.com/sindresorhus/log-update) - Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc. - Ink (https://github.com/vadimdemedes/ink) - React for interactive command-line apps. - listr2 (https://github.com/listr2/listr2) - Terminal task list. - conf (https://github.com/sindresorhus/conf) - Simple config handling for your app or module. - ansi-escapes (https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal. - log-symbols (https://github.com/sindresorhus/log-symbols) - Colored symbols for various log levels. - figures (https://github.com/sindresorhus/figures) - Unicode symbols with Windows CMD fallbacks. - boxen (https://github.com/sindresorhus/boxen) - Create boxes in the terminal. - terminal-link (https://github.com/sindresorhus/terminal-link) - Create clickable links in the terminal. - terminal-image (https://github.com/sindresorhus/terminal-image) - Display images in the terminal. - string-width (https://github.com/sindresorhus/string-width) - Get the visual width of a string - the number of columns required to display it. - cli-truncate (https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal. - blessed (https://github.com/chjj/blessed) - Curses-like library. - Inquirer.js (https://github.com/SBoudrias/Inquirer.js) - Interactive command-line prompt. - yn (https://github.com/sindresorhus/yn) - Parse yes/no like values. - cli-table3 (https://github.com/cli-table/cli-table3) - Pretty unicode tables. - drawille (https://github.com/madbence/node-drawille) - Draw on the terminal with unicode braille characters. - ascii-charts (https://github.com/jstrace/chart) - ASCII bar chart in the terminal. - progress (https://github.com/visionmedia/node-progress) - Flexible ascii progress bar. - insight (https://github.com/yeoman/insight) - Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics. - cli-cursor (https://github.com/sindresorhus/cli-cursor) - Toggle the CLI cursor. - cli-columns (https://github.com/shannonmoeller/cli-columns) - Columnated unicode and ansi-safe text lists. - cfonts (https://github.com/dominikwilkowski/cfonts) - Sexy ASCII fonts for the console. - multispinner (https://github.com/codekirei/node-multispinner) - Multiple, simultaneous, individually controllable CLI spinners. - omelette (https://github.com/f/omelette) - Shell autocompletion helper. - cross-env (https://github.com/kentcdodds/cross-env) - Set environment variables cross-platform. - shelljs (https://github.com/shelljs/shelljs) - Portable Unix shell commands. - sudo-block (https://github.com/sindresorhus/sudo-block) - Block users from running your app with root permissions. - sparkly (https://github.com/sindresorhus/sparkly) - Generate sparklines ▁▂▃▅▂▇. - Bit (https://github.com/teambit/bit) - Create, maintain, find and use small modules and components across repositories. - gradient-string (https://github.com/bokub/gradient-string) - Beautiful color gradients in terminal output. - oclif (https://github.com/oclif/oclif) - CLI framework complete with parser, automatic documentation, testing, and plugins. - terminal-size (https://github.com/sindresorhus/terminal-size) - Reliably get the terminal window size. - Cliffy (https://github.com/drew-y/cliffy) - Framework for interactive CLIs. - zx (https://github.com/google/zx) - Write shell scripts JavaScript. Build tools - parcel (https://github.com/parcel-bundler/parcel) - Blazing fast, zero config web app bundler. - webpack (https://github.com/webpack/webpack) - Packs modules and assets for the browser. - rollup (https://github.com/rollup/rollup) - Next-generation ES2015 module bundler. - gulp (https://github.com/gulpjs/gulp) - Streaming and fast build system that favors code over config. - Broccoli (https://github.com/broccolijs/broccoli) - Fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions. - Brunch (https://github.com/brunch/brunch) - Front-end web app build tool with simple declarative config, fast incremental compilation, and an opinionated workflow. - FuseBox (https://github.com/fuse-box/fuse-box) - Fast build system that combines the power of webpack, JSPM and SystemJS, with first-class TypeScript support. - pkg (https://github.com/vercel/pkg) - Package your Node.js project into an executable. - Vite (https://github.com/vitejs/vite) - Front-end build tool with hot module replacement and static asset bundling. Hardware - johnny-five (https://github.com/rwaldron/johnny-five) - Firmata based Arduino Framework. - serialport (https://github.com/serialport/node-serialport) - Access serial ports for reading and writing. - usb (https://github.com/node-usb/node-usb) - USB library. - i2c-bus (https://github.com/fivdi/i2c-bus) - I2C serial bus access. - onoff (https://github.com/fivdi/onoff) - GPIO access and interrupt detection. - spi-device (https://github.com/fivdi/spi-device) - SPI serial bus access. - pigpio (https://github.com/fivdi/pigpio) - Fast GPIO, PWM, servo control, state change notification, and interrupt handling on the Raspberry Pi. - gps (https://github.com/infusion/GPS.js) - NMEA parser for handling GPS receivers. - modbus-serial (https://github.com/yaacov/node-modbus-serial) - A pure JavaScript implementation of MODBUS-RTU (serial and TCP). Templating - marko (https://github.com/marko-js/marko) - HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags. - nunjucks (https://github.com/mozilla/nunjucks) - Templating engine with inheritance, asynchronous control, and more (jinja2 inspired). - handlebars.js (https://github.com/handlebars-lang/handlebars.js) - Superset of Mustache templates which adds powerful features like helpers and more advanced blocks. - EJS (https://github.com/mde/ejs) - Simple unopinionated templating language. - Pug (https://github.com/pugjs/pug) - High-performance template engine heavily influenced by Haml. Web frameworks - Fastify (https://github.com/fastify/fastify) - Fast and low overhead web framework. - Next.js (https://github.com/vercel/next.js) - Minimalistic framework for server-rendered universal JavaScript web apps. - Nuxt.js (https://github.com/nuxt/nuxt.js) - Minimalistic framework for server-rendered Vue.js apps. - Hapi (https://github.com/hapijs/hapi) - Framework for building applications and services. - Micro (https://github.com/vercel/micro) - Minimalistic microservice framework with an async approach. - Koa (https://github.com/koajs/koa) - Framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. - Express (https://github.com/expressjs/express) - Web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications. - Feathers (https://github.com/feathersjs/feathers) - Microservice framework built in the spirit of Express. - LoopBack (https://github.com/loopbackio/loopback-next) - Powerful framework for creating REST APIs and easily connecting to backend data sources. - Meteor (https://github.com/meteor/meteor) - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. (You might like awesome-meteor (https://github.com/Urigo/awesome-meteor)) - Restify (https://github.com/restify/node-restify) - Enables you to build correct REST web services. - ThinkJS (https://github.com/thinkjs/thinkjs) - Framework with ES2015+ support, WebSockets, REST API. - ActionHero (https://github.com/actionhero/actionhero) - Framework for making reusable & scalable APIs for TCP sockets, WebSockets, and HTTP clients. - seneca (https://github.com/senecajs/seneca) - Toolkit for writing microservices. - AdonisJs (https://github.com/adonisjs/core) - A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container. - Moleculer (https://github.com/moleculerjs/moleculer) - Fast & powerful microservices framework. - Nest (https://github.com/nestjs/nest) - Angular-inspired framework for building efficient and scalable server-side apps. - TypeGraphQL (https://github.com/MichalLytek/type-graphql) - Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators. - Tinyhttp (https://github.com/tinyhttp/tinyhttp) - Modern and fast Express-like web framework. - Marble.js (https://github.com/marblejs/marble) - Functional reactive framework for building server-side apps, based on TypeScript and RxJS. - Lad (https://github.com/ladjs/lad) - Framework made by a former Express TC and Koa member that bundles web, API, job, and proxy servers. - Ts.ED (https://github.com/tsedio/tsed) - Intuitive TypeScript framework for building server-side apps on top of Express.js or Koa.js. - Hono (https://github.com/honojs/hono) - Small and fast web framework. Documentation - documentation.js (https://github.com/documentationjs/documentation) - API documentation generator with support for ES2015+ and flow annotation. - Docco (https://github.com/jashkenas/docco) - Documentation generator which produces an HTML document that displays your comments intermingled with your code. - JSDoc (https://github.com/jsdoc/jsdoc) - API documentation generator similar to JavaDoc or PHPDoc. - Docusaurus (https://github.com/facebook/docusaurus) - Documentation website generator that leverages React and Markdown, and comes with translation and versioning features. Filesystem - del (https://github.com/sindresorhus/del) - Delete files/folders using globs. - globby (https://github.com/sindresorhus/globby) - Glob files with support for multiple patterns. - chokidar (https://github.com/paulmillr/chokidar) - Filesystem watcher which stabilizes events from fs.watch and fs.watchFile as well as using native fsevents on macOS. - find-up (https://github.com/sindresorhus/find-up) - Find a file by walking up parent directories. - proper-lockfile (https://github.com/moxystudio/node-proper-lockfile) - Inter-process and inter-machine lockfile utility. - load-json-file (https://github.com/sindresorhus/load-json-file) - Read and parse a JSON file. - write-json-file (https://github.com/sindresorhus/write-json-file) - Stringify and write JSON to a file atomically. - fs-write-stream-atomic (https://github.com/npm/fs-write-stream-atomic) - Like fs.createWriteStream(), but atomic. - filenamify (https://github.com/sindresorhus/filenamify) - Convert a string to a valid filename. - istextorbinary (https://github.com/bevry/istextorbinary) - Check if a file is text or binary. - fs-jetpack (https://github.com/szwacz/fs-jetpack) - Completely redesigned file system API for convenience in everyday use. - fs-extra (https://github.com/jprichardson/node-fs-extra) - Extra methods for the fs module. - pkg-dir (https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package. - filehound (https://github.com/nspragg/filehound) - Flexible and fluent interface for searching the file system. - move-file (https://github.com/sindresorhus/move-file) - Move a file, even works across devices. - tempy (https://github.com/sindresorhus/tempy) - Get a random temporary file or directory path. Control flow - Promises - **pify** (https://github.com/sindresorhus/pify) - Promisify a callback-style function.  - **delay** (https://github.com/sindresorhus/delay) - Delay a promise a specified amount of time.  - **promise-memoize** (https://github.com/nodeca/promise-memoize) - Memoize promise-returning functions, with expire and prefetch. - **valvelet** (https://github.com/lpinca/valvelet) - Limit the execution rate of a promise-returning function.  - **p-map** (https://github.com/sindresorhus/p-map) - Map over promises concurrently.  - **More…** (https://github.com/sindresorhus/promise-fun)  - Observables - **RxJS** (https://github.com/ReactiveX/RxJS) - Reactive programming.  - **observable-to-promise** (https://github.com/sindresorhus/observable-to-promise) - Convert an Observable to a Promise. - **More…** (https://github.com/sindresorhus/awesome-observables)  - Streams - **Highland.js** (https://github.com/caolan/highland) - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams. Streams - get-stream (https://github.com/sindresorhus/get-stream) - Get a stream as a string or buffer. - from2 (https://github.com/hughsk/from2) - Convenience wrapper for ReadableStream, inspired by through2. - into-stream (https://github.com/sindresorhus/into-stream) - Convert a buffer/string/array/object into a stream. - duplexify (https://github.com/mafintosh/duplexify) - Turn a writeable and readable stream into a single streams2 duplex stream. - pumpify (https://github.com/mafintosh/pumpify) - Combine an array of streams into a single duplex stream. - peek-stream (https://github.com/mafintosh/peek-stream) - Transform stream that lets you peek the first line before deciding how to parse it. - binary-split (https://github.com/maxogden/binary-split) - Newline (or any delimiter) splitter stream. - byline (https://github.com/jahewson/node-byline) - Super-simple line-by-line Stream reader. - first-chunk-stream (https://github.com/sindresorhus/first-chunk-stream) - Transform the first chunk in a stream. - pad-stream (https://github.com/sindresorhus/pad-stream) - Pad each line in a stream. - multistream (https://github.com/feross/multistream) - Combine multiple streams into a single stream. - readable-stream (https://github.com/nodejs/readable-stream) - Mirror of Streams2 and Streams3 implementations in core. - through2-concurrent (https://github.com/almost/through2-concurrent) - Transform object streams concurrently. Real-time - µWebSockets (https://github.com/uNetworking/uWebSockets) - Highly scalable WebSocket server & client library. - Socket.io (https://github.com/socketio/socket.io) - Enables real-time bidirectional event-based communication. - Faye (https://github.com/faye/faye) - Real-time client-server message bus, based on Bayeux protocol. - SocketCluster (https://github.com/SocketCluster/socketcluster) - Scalable HTTP + WebSocket engine which can run on multiple CPU cores. - Primus (https://github.com/primus/primus) - An abstraction layer for real-time frameworks to prevent module lock-in. - deepstream.io (https://github.com/deepstreamIO/deepstream.io-client-js) - Scalable real-time microservice framework. - Kalm (https://github.com/kalm/kalm.js) - Low-level socket router and middleware framework. - MQTT.js (https://github.com/mqttjs/MQTT.js) - Client for MQTT - Pub-sub based messaging protocol for use on top of TCP/IP. - rpc-websockets (https://github.com/elpheria/rpc-websockets) - JSON-RPC 2.0 implementation over WebSockets. - Aedes (https://github.com/moscajs/aedes) - Barebone MQTT server that can run on any stream server. Image - sharp (https://github.com/lovell/sharp) - The fastest module for resizing JPEG, PNG, WebP and TIFF images. - image-type (https://github.com/sindresorhus/image-type) - Detect the type of an image. - image-dimensions (https://github.com/sindresorhus/image-dimensions) - Get the dimensions of an image. - lwip (https://github.com/EyalAr/lwip) - Lightweight image processor which does not require ImageMagick. - pica (https://github.com/nodeca/pica) - High quality & fast resize (lanczos3) in pure JS. Alternative to canvas drawImage(), when no pixelation allowed. - jimp (https://github.com/oliver-moran/jimp) - Image processing in pure JavaScript. - qrcode (https://github.com/soldair/node-qrcode) - QR code and bar code generator. - ImageScript (https://github.com/matmen/ImageScript) - Image processing in JavaScript, utilizing WebAssembly for performance. Text - iconv-lite (https://github.com/ashtuchkin/iconv-lite) - Convert character encodings. - string-length (https://github.com/sindresorhus/string-length) - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes. - camelcase (https://github.com/sindresorhus/camelcase) - Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar. - escape-string-regexp (https://github.com/sindresorhus/escape-string-regexp) - Escape RegExp special characters. - splice-string (https://github.com/sindresorhus/splice-string) - Remove or replace part of a string like Array#splice. - indent-string (https://github.com/sindresorhus/indent-string) - Indent each line in a string. - strip-indent (https://github.com/sindresorhus/strip-indent) - Strip leading whitespace from every line in a string. - detect-indent (https://github.com/sindresorhus/detect-indent) - Detect the indentation of code. - he (https://github.com/mathiasbynens/he) - HTML entity encoder/decoder. - i18n-node (https://github.com/mashpie/i18n-node) - Simple translation module with dynamic JSON storage. - babelfish (https://github.com/nodeca/babelfish) - i18n with very easy syntax for plurals. - matcher (https://github.com/sindresorhus/matcher) - Simple wildcard matching. - unhomoglyph (https://github.com/nodeca/unhomoglyph) - Normalize visually similar unicode characters. - i18next (https://github.com/i18next/i18next) - Internationalization framework. - nanoid (https://github.com/ai/nanoid) - Tiny, secure, URL-friendly, unique string ID generator. - StegCloak (https://github.com/kurolabs/stegcloak) - Conceal secrets within strings, in plain sight. Number - random-int (https://github.com/sindresorhus/random-int) - Generate a random integer. - random-float (https://github.com/sindresorhus/random-float) - Generate a random float. - unique-random (https://github.com/sindresorhus/unique-random) - Generate random numbers that are consecutively unique. - round-to (https://github.com/sindresorhus/round-to) - Round a number to a specific number of decimal places: 1.234 → 1.2. Math - ndarray (https://github.com/scijs/ndarray) - Multidimensional arrays. - mathjs (https://github.com/josdejong/mathjs) - An extensive math library. - math-clamp (https://github.com/sindresorhus/math-clamp) - Clamp a number. - algebra (https://github.com/fibo/algebra) - Algebraic structures. - multimath (https://github.com/nodeca/multimath) - Core to create fast image math in WebAssembly and JS. Date - Luxon (https://github.com/moment/luxon) - Library for working with dates and times. - date-fns (https://github.com/date-fns/date-fns) - Modern date utility. - Day.js (https://github.com/iamkun/dayjs) - Immutable date library alternative to Moment.js. - dateformat (https://github.com/felixge/node-dateformat) - Date formatting. - tz-format (https://github.com/samverschueren/tz-format) - Format a date with timezone: 2015-11-30T10:40:35+01:00. - cctz (https://github.com/floatdrop/node-cctz) - Fast parsing, formatting, and timezone conversation for dates. URL - normalize-url (https://github.com/sindresorhus/normalize-url) - Normalize a URL. - humanize-url (https://github.com/sindresorhus/humanize-url) - Humanize a URL: https://sindresorhus.com → sindresorhus.com. - url-unshort (https://github.com/nodeca/url-unshort) - Expand shortened URLs. - speakingurl (https://github.com/pid/speakingurl) - Generate a slug from a string with transliteration. - linkify-it (https://github.com/markdown-it/linkify-it) - Link patterns detector with full unicode support. - url-pattern (https://github.com/snd/url-pattern) - Easier than regex string matching patterns for URLs and other strings. - embedza (https://github.com/nodeca/embedza) - Create HTML snippets/embeds from URLs using info from oEmbed, Open Graph, meta tags. Data validation - joi (https://github.com/sideway/joi) - Object schema description language and validator for JavaScript objects. - is-my-json-valid (https://github.com/mafintosh/is-my-json-valid) - JSON Schema validator that uses code generation to be extremely fast. - property-validator (https://github.com/nettofarah/property-validator) - Easy property validation for Express. - schema-inspector (https://github.com/schema-inspector/schema-inspector) - JSON API sanitization and validation. - ajv (https://github.com/ajv-validator/ajv) - The fastest JSON Schema validator. Supports v5, v6 and v7 proposals. - Superstruct (https://github.com/ianstormtaylor/superstruct) - Simple and composable way to validate data in JavaScript (and TypeScript). - yup (https://github.com/jquense/yup) - Object schema validation. - zod (https://github.com/colinhacks/zod) - TypeScript-first schema validation with static type inference. Parsing - remark (https://github.com/remarkjs/remark) - Markdown processor powered by plugins. - markdown-it (https://github.com/markdown-it/markdown-it) - Markdown parser with 100% CommonMark support, extensions and syntax plugins. - parse5 (https://github.com/inikulin/parse5) - Fast full-featured spec compliant HTML parser. - @parcel/css (https://github.com/parcel-bundler/parcel-css) - A CSS parser, transformer, and minifier written in Rust. - strip-json-comments (https://github.com/sindresorhus/strip-json-comments) - Strip comments from JSON. - strip-css-comments (https://github.com/sindresorhus/strip-css-comments) - Strip comments from CSS. - parse-json (https://github.com/sindresorhus/parse-json) - Parse JSON with more helpful errors. - URI.js (https://github.com/medialize/URI.js) - URL mutation. - JSONStream (https://github.com/dominictarr/JSONStream) - Streaming JSON.parse and stringify. - neat-csv (https://github.com/sindresorhus/neat-csv) - Fast CSV parser. Callback interface for the above. - csv-parser (https://github.com/mafintosh/csv-parser) - Streaming CSV parser that aims to be faster than everyone else. - PEG.js (https://github.com/pegjs/pegjs) - Simple parser generator that produces fast parsers with excellent error reporting. - x-ray (https://github.com/matthewmueller/x-ray) - Web scraping utility. - nearley (https://github.com/kach/nearley) - Simple, fast, powerful parsing for JavaScript. - binary-extract (https://github.com/juliangruber/binary-extract) - Extract a value from a buffer of JSON without parsing the whole thing. - Stylecow (https://github.com/stylecow/stylecow) - Parse, manipulate and convert modern CSS to make it compatible with all browsers. Extensible with plugins. - js-yaml (https://github.com/nodeca/js-yaml) - Very fast YAML parser. - xml2js (https://github.com/Leonidas-from-XIV/node-xml2js) - XML to JavaScript object converter. - Jison (https://github.com/zaach/jison) - Friendly JavaScript parser generator. It shares genes with Bison, Yacc and family. - google-libphonenumber (https://github.com/ruimarinho/google-libphonenumber) - Parse, format, store and validate phone numbers. - ref (https://github.com/TooTallNate/ref) - Read/write structured binary data in Buffers. - xlsx-populate (https://github.com/dtjohnson/xlsx-populate) - Read/write Excel XLSX. - Chevrotain (https://github.com/Chevrotain/chevrotain) - Very fast and feature rich parser building toolkit for JavaScript. - fast-xml-parser (https://github.com/NaturalIntelligence/fast-xml-parser) - Validate and parse XML. Humanize - pretty-bytes (https://github.com/sindresorhus/pretty-bytes) - Convert bytes to a human readable string: 1337 → 1.34 kB. - pretty-ms (https://github.com/sindresorhus/pretty-ms) - Convert milliseconds to a human readable string: 1337000000 → 15d 11h 23m 20s. - ms (https://github.com/vercel/ms) - Tiny millisecond conversion utility. - pretty-error (https://github.com/AriaMinaei/pretty-error) - Errors with less clutter. - read-art (https://github.com/Tjatse/node-readability) - Extract readable content from any page. Compression - yazl (https://github.com/thejoshwolfe/yazl) - Zip. - yauzl (https://github.com/thejoshwolfe/yauzl) - Unzip. - Archiver (https://github.com/archiverjs/node-archiver) - Streaming interface for archive generation, supporting ZIP and TAR. - pako (https://github.com/nodeca/pako) - High speed zlib port to pure js (deflate, inflate, gzip). - tar-stream (https://github.com/mafintosh/tar-stream) - Streaming tar parser and generator. Also see tar-fs (https://github.com/mafintosh/tar-fs). Network - get-port (https://github.com/sindresorhus/get-port) - Get an available port. - ipify (https://github.com/sindresorhus/ipify) - Get your public IP address. - getmac (https://github.com/bevry/getmac) - Get the computer MAC address. - DHCP (https://github.com/infusion/node-dhcp) - DHCP client and server. - netcat (https://github.com/roccomuso/netcat) - Netcat port in pure JS. Database - Drivers - **PostgreSQL** (https://github.com/brianc/node-postgres) - PostgreSQL client. Pure JavaScript and native libpq bindings. - **Redis** (https://github.com/luin/ioredis) - Redis client.  - **LevelUP** (https://github.com/Level/levelup) - LevelDB.  - **MySQL** (https://github.com/mysqljs/mysql) - MySQL client.  - **couchdb-nano** (https://github.com/apache/couchdb-nano) - CouchDB client.  - **Aerospike** (https://github.com/aerospike/aerospike-client-nodejs) - Aerospike client.  - **Couchbase** (https://github.com/couchbase/couchnode) - Couchbase client.  - **MongoDB** (https://github.com/mongodb/node-mongodb-native) - MongoDB driver.  - ODM / ORM - **Sequelize** (https://github.com/sequelize/sequelize) - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL, and more.  - **Bookshelf** (https://github.com/bookshelf/bookshelf) - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.  - **Mongoose** (https://github.com/Automattic/mongoose) - Elegant MongoDB object modeling.  - **Waterline** (https://github.com/balderdashy/waterline) - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.  - **OpenRecord** (https://github.com/PhilWaldmann/openrecord) - ORM for PostgreSQL, MySQL, SQLite3 and RESTful datastores. Similar to ActiveRecord.  - **pg-promise** (https://github.com/vitaly-t/pg-promise) - PostgreSQL framework for native SQL using promises.  - **slonik** (https://github.com/gajus/slonik) - PostgreSQL client with strict types, detailed logging and assertions.  - **Objection.js** (https://github.com/Vincit/objection.js) - Lightweight ORM built on the SQL query builder Knex.  - **TypeORM** (https://github.com/typeorm/typeorm) - ORM for PostgreSQL, MariaDB, MySQL, SQLite, and more.  - **MikroORM** (https://github.com/mikro-orm/mikro-orm) - TypeScript ORM based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite.  - **Prisma** (https://github.com/prisma/prisma) - Modern database access (ORM alternative). Auto-generated and type-safe query builder in TypeScript. Supports PostgreSQL, MySQL & SQLite.  - Drizzle ORM (https://github.com/drizzle-team/drizzle-orm) - TypeScript ORM that supports various databases such as PostgreSQL. - Query builder - **Knex** (https://github.com/knex/knex) - Query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use. - Other - **NeDB** (https://github.com/louischatriot/nedb) - Embedded persistent database written in JavaScript.  - **Lowdb** (https://github.com/typicode/lowdb) - Small JavaScript database powered by Lodash.  - **Keyv** (https://github.com/jaredwray/keyv) - Simple key-value storage with support for multiple backends.  - **Finale** (https://github.com/tommybananas/finale) - RESTful endpoint generator for your Sequelize models.  - **database-js** (https://github.com/mlaanderson/database-js) - Wrapper for multiple databases with a JDBC-like connection.  - **Mongo Seeding** (https://github.com/pkosiec/mongo-seeding) - Populate MongoDB databases with JavaScript and JSON files.  - **@databases** (https://github.com/ForbesLindesay/atdatabases) - Query PostgreSQL, MySQL and SQLite3 with plain SQL without risking SQL injection. - **pg-mem** (https://github.com/oguimbal/pg-mem) - In-memory PostgreSQL instance for your tests.  Testing - AVA (https://github.com/avajs/ava) - Futuristic test runner. - Mocha (https://github.com/mochajs/mocha) - Feature-rich test framework making asynchronous testing simple and fun. - nyc (https://github.com/istanbuljs/nyc) - Code coverage tool built on istanbul that works with subprocesses. - tap (https://github.com/tapjs/node-tap) - TAP test framework. - tape (https://github.com/substack/tape) - TAP-producing test harness. - power-assert (https://github.com/power-assert-js/power-assert) - Provides descriptive assertion messages through the standard assert interface. - Mochify (https://github.com/mantoni/mochify.js) - TDD with Browserify, Mocha, PhantomJS and WebDriver. - trevor (https://github.com/vadimdemedes/trevor) - Run tests against multiple versions of Node.js without switching versions manually or pushing to Travis CI. - loadtest (https://github.com/alexfernandez/loadtest) - Run load tests for your web application, with an API for automation. - Sinon.JS (https://github.com/sinonjs/sinon) - Test spies, stubs and mocks. - navit (https://github.com/nodeca/navit) - PhantomJS / SlimerJS wrapper to simplify browser test scripting. - Nock (https://github.com/nock/nock) - HTTP mocking and expectations. - intern (https://github.com/theintern/intern) - Code testing stack. - toxy (https://github.com/h2non/toxy) - Hackable HTTP proxy to simulate failure scenarios and network conditions. - hook-std (https://github.com/sindresorhus/hook-std) - Hook and modify stdout/stderr. - testen (https://github.com/egoist/testen) - Run tests for multiple versions of Node.js locally with NVM. - Nightwatch (https://github.com/nightwatchjs/nightwatch) - Automated UI testing framework based on Selenium WebDriver. - WebdriverIO (https://github.com/webdriverio/webdriverio) - Automated testing based on the WebDriver protocol. - Jest (https://github.com/facebook/jest) - Painless JavaScript testing. - TestCafe (https://github.com/DevExpress/testcafe) - Automated browser testing. - abstruse (https://github.com/bleenco/abstruse) - Continuous Integration server. - CodeceptJS (https://github.com/codeceptjs/CodeceptJS) - End-to-end testing. - Puppeteer (https://github.com/puppeteer/puppeteer) - Headless Chrome. - Playwright (https://github.com/microsoft/playwright) - Headless Chromium, WebKit, and Firefox with a single API. - nve (https://github.com/ehmicky/nve) - Run any command on multiple versions of Node.js locally. - axe-core (https://github.com/dequelabs/axe-core) - Accessibility engine for automated Web UI testing. - testcontainers-node (https://github.com/testcontainers/testcontainers-node) - Provides lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. Security - upash (https://github.com/simonepri/upash) - Unified API for all password hashing algorithms. - themis (https://github.com/cossacklabs/themis) - Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on. - GuardRails (https://github.com/apps/guardrails) - GitHub app that provides security feedback in pull requests. - rate-limiter-flexible (https://github.com/animir/node-rate-limiter-flexible) - Brute-force and DDoS attack protection. - crypto-hash (https://github.com/sindresorhus/crypto-hash) - Async non-blocking hashing. - jose-simple (https://github.com/davesag/jose-simple) - Encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard. Benchmarking - Benchmark.js (https://github.com/bestiejs/benchmark.js) - Benchmarking library that supports high-resolution timers and returns statistically significant results. Minifiers - babel-minify (https://github.com/babel/minify) - ES2015+ aware minifier based on the Babel toolchain. - UglifyJS2 (https://github.com/mishoo/UglifyJS) - JavaScript minifier. - clean-css (https://github.com/clean-css/clean-css) - CSS minifier. - minimize (https://github.com/Swaagie/minimize) - HTML minifier. - imagemin (https://github.com/imagemin/imagemin) - Image minifier. Authentication - Passport (https://github.com/jaredhanson/passport) - Simple, unobtrusive authentication. - Grant (https://github.com/simov/grant) - OAuth providers for Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel, and many more. Authorization - CASL (https://github.com/stalniy/casl) - Isomorphic authorization for UI and API. - node-casbin (https://github.com/casbin/node-casbin) - Authorization library that supports access control models like ACL, RBAC and ABAC. Email - Nodemailer (https://github.com/nodemailer/nodemailer) - The fastest way to handle email. - emailjs (https://github.com/eleith/emailjs) - Send text/HTML emails with attachments to any SMTP server. - email-templates (https://github.com/forwardemail/email-templates) - Create, preview, and send custom email templates. - MJML (https://github.com/mjmlio/mjml) - Markup language designed to reduce the pain of creating responsive emails. Job queues - bull (https://github.com/OptimalBits/bull) - Persistent job and message queue. - agenda (https://github.com/agenda/agenda) - MongoDB-backed job scheduling. - idoit (https://github.com/nodeca/idoit) - Redis-backed job queue engine with advanced job control. - node-resque (https://github.com/actionhero/node-resque) - Redis-backed job queue. - rsmq (https://github.com/smrchy/rsmq) - Redis-backed message queue. - bee-queue (https://github.com/bee-queue/bee-queue) - High-performance Redis-backed job queue. - RedisSMQ (https://github.com/weyoss/redis-smq) - Simple high-performance Redis message queue with real-time monitoring. - sqs-consumer (https://github.com/bbc/sqs-consumer) - Build Amazon Simple Queue Service (SQS) based apps without the boilerplate. - better-queue (https://github.com/diamondio/better-queue) - Simple and efficient job queue when you cannot use Redis. - bullmq (https://github.com/taskforcesh/bullmq) - Persistent job and message queue. - bree (https://github.com/breejs/bree) - Job task scheduler with worker threads, cron, date, and human syntax support. - graphile-worker (https://github.com/graphile/worker) - High performance PostgreSQL job queue. Node.js management - n (https://github.com/tj/n) - Node.js version management. - nave (https://github.com/isaacs/nave) - Virtual Environments for Node.js. - nodeenv (https://github.com/ekalinin/nodeenv) - Node.js virtual environment compatible to Python's virtualenv. - nvm for Windows (https://github.com/coreybutler/nvm-windows) - Version management for Windows. - nodenv (https://github.com/nodenv/nodenv) - Version manager that is similar to Ruby's rbenv. It supports auto version switching. - fnm (https://github.com/Schniz/fnm) - Cross-platform Node.js version manager built in Rust. Cross-platform integration - napi-rs (https://github.com/napi-rs/napi-rs) - Framework for building compiled Node.js add-ons in Rust via Node-API. - Neon (https://github.com/neon-bindings/neon) - Rust bindings for writing safe and fast native Node.js modules. - Edge.js (https://github.com/agracio/edge-js) - Run .NET and Node.js code in the same process on Windows, macOS, and Linux. - DotNetJS (https://github.com/Elringus/DotNetJS) - Consume .NET libraries in Node.js using this .NET interoperability layer. Natural language processing - retext (https://github.com/retextjs/retext) - An extensible natural language system. - franc (https://github.com/wooorm/franc) - Detect the language of text. - leven (https://github.com/sindresorhus/leven) - Measure the difference between two strings using the Levenshtein distance algorithm. - natural (https://github.com/NaturalNode/natural) - Natural language facility. - nlp.js (https://github.com/axa-group/nlp.js) - Building bots, with entity extraction, sentiment analysis, automatic language identify, and more. Process management - PM2 (https://github.com/Unitech/pm2) - Advanced Process Manager. - nodemon (https://github.com/remy/nodemon) - Monitor for changes in your app and automatically restart the server. - node-mac (https://github.com/coreybutler/node-mac) - Run scripts as a native Mac daemon and log to the console app. - node-linux (https://github.com/coreybutler/node-linux) - Run scripts as native system service and log to syslog. - node-windows (https://github.com/coreybutler/node-windows) - Run scripts as a native Windows service and log to the Event viewer. - supervisor (https://github.com/petruisfan/node-supervisor) - Restart scripts when they crash or restart when a *.js file changes. - Phusion Passenger (https://github.com/phusion/passenger) - Friendly process manager that integrates directly into Nginx. Automation - robotjs (https://github.com/octalmage/robotjs) - Desktop Automation: control the mouse, keyboard and read the screen. - nut.js (https://github.com/nut-tree/nut.js) - Cross-platform native GUI automation / testing framework with image matching capabilities which integrates with Jest. AST - Acorn (https://github.com/acornjs/acorn) - Tiny, fast JavaScript parser. - babel-parser (https://github.com/babel/babel/tree/master/packages/babel-parser) - JavaScript parser used in Babel. Static site generators - DocPad (https://github.com/docpad/docpad) - Static site generator with dynamic abilities and huge plugin ecosystem. - docsify (https://github.com/docsifyjs/docsify) - Markdown documentation site generator with no statically built HTML files. - Charge (https://github.com/brandonweiss/charge) - Opinionated, zero-config static site generator using JSX and MDX. Content management systems - KeystoneJS (https://github.com/keystonejs/keystone) - CMS and web application platform built on Express and MongoDB. - ApostropheCMS (https://github.com/apostrophecms/apostrophe) - Content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB. - Strapi (https://github.com/strapi/strapi) - Content Management Framework (headless-CMS) to build powerful APIs. - Factor (https://github.com/FactorJS/factor) - Vue.js dashboard framework and headless CMS. - AdminBro (https://github.com/SoftwareBrothers/adminjs) - Auto-generated admin panel with CRUD for all your resources. - Graphweaver (https://github.com/exogee-technology/graphweaver) - CMS and headless GraphQL API. Forum - nodeBB (https://github.com/NodeBB/NodeBB) - Forum platform for the modern web. Blogging - Ghost (https://github.com/TryGhost/Ghost) - Simple, powerful publishing platform. - Hexo (https://github.com/hexojs/hexo) - Fast, simple and powerful blogging framework. Weird - cows (https://github.com/sindresorhus/cows) - ASCII cows. - superb (https://github.com/sindresorhus/superb) - Get superb like words. - cat-names (https://github.com/sindresorhus/cat-names) - Get popular cat names. - dog-names (https://github.com/sindresorhus/dog-names) - Get popular dog names. - superheroes (https://github.com/sindresorhus/superheroes) - Get superhero names. - supervillains (https://github.com/sindresorhus/supervillains) - Get supervillain names. - cool-ascii-faces (https://github.com/maxogden/cool-ascii-faces) - Get some cool ascii faces. - cat-ascii-faces (https://github.com/melaniecebula/cat-ascii-faces) - ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”. - nerds (https://github.com/SkyHacks/nerds) - Get data from nerdy topics like Harry Potter, Star Wars, and Pokémon. Serialization - snappy (https://github.com/kesla/node-snappy) - Native bindings for Google's Snappy compression library. - protobuf (https://github.com/protobufjs/protobuf.js) - Implementation of Protocol Buffers. - compactr (https://github.com/compactr/compactr.js) - Implementation of the Compactr protocol. Miscellaneous - execa (https://github.com/sindresorhus/execa) - Better child_process. - cheerio (https://github.com/cheeriojs/cheerio) - Fast, flexible, and lean implementation of core jQuery designed specifically for the server. - open (https://github.com/sindresorhus/open) - Opens stuff like websites, files, executables. - hasha (https://github.com/sindresorhus/hasha) - Hashing made simple. Get the hash of a buffer/string/stream/file. - dot-prop (https://github.com/sindresorhus/dot-prop) - Get a property from a nested object using a dot path. - onetime (https://github.com/sindresorhus/onetime) - Only run a function once. - mem (https://github.com/sindresorhus/mem) - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input. - strip-bom (https://github.com/sindresorhus/strip-bom) - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream. - os-locale (https://github.com/sindresorhus/os-locale) - Get the system locale. - ssh2 (https://github.com/mscdex/ssh2) - SSH2 client and server module. - adit (https://github.com/markelog/adit) - SSH tunneling made simple. - file-type (https://github.com/sindresorhus/file-type) - Detect the file type of a Buffer. - Bottleneck (https://github.com/SGrondin/bottleneck) - Rate limiter that makes throttling easy. - webworker-threads (https://github.com/audreyt/node-webworker-threads) - Lightweight Web Worker API implementation with native threads. - clipboardy (https://github.com/sindresorhus/clipboardy) - Access the system clipboard (copy/paste). - node-pre-gyp (https://github.com/mapbox/node-pre-gyp) - Makes it easy to publish and install Node.js C++ addons from binaries. - opencv (https://github.com/peterbraden/node-opencv) - Bindings for OpenCV. The defacto computer vision library. - dotenv (https://github.com/motdotla/dotenv) - Load environment variables from .env file. - semver (https://github.com/npm/node-semver) - Semantic version parser. - nodegit (https://github.com/nodegit/nodegit) - Native bindings to Git. - json-strictify (https://github.com/pigulla/json-strictify) - Safely serialize a value to JSON without data loss or going into an infinite loop. - jsdom (https://github.com/jsdom/jsdom) - JavaScript implementation of HTML and the DOM. - @sindresorhus/is (https://github.com/sindresorhus/is) - Type check values. - env-dot-prop (https://github.com/simonepri/env-dot-prop) - Get, set, or delete nested properties of process.env using a dot path. - node-video-lib (https://github.com/gkozlenko/node-video-lib) - Pure JavaScript library for working with MP4 and FLV video files and creating MPEG-TS chunks for HLS streaming. - basic-ftp (https://github.com/patrickjuchli/basic-ftp) - FTP/FTPS client. - cashify (https://github.com/xxczaki/cashify) - Currency conversion. - genepi (https://github.com/Geode-solutions/genepi) - Automatically generate a native Node.js addon from C++ code. - husky (https://github.com/typicode/husky) - Create Git hook scripts. - patch-package (https://github.com/ds300/patch-package) - Make and preserve fixes to npm dependencies. - editly (https://github.com/mifi/editly) - Declarative video editing API. - wild-wild-path (https://github.com/ehmicky/wild-wild-path) - Object property paths with wildcards and regexes. - uint8array-extras (https://github.com/sindresorhus/uint8array-extras) - Useful utilities for working with Uint8Array and Buffer. Package Manager - npm (https://docs.npmjs.com/about-npm) - The default package manager. - pnpm (https://pnpm.io) - Disk space efficient package manager. - yarn (https://yarnpkg.com) - Alternative package manager. - bun (https://bun.sh) - All-in-one toolkit for JavaScript and TypeScript apps. Resources Tutorials - Node.js Best Practices (https://github.com/goldbergyoni/nodebestpractices) - Summary and curation of the top-ranked content on Node.js best practices, available in multiple languages. - Nodeschool (https://github.com/nodeschool) - Learn Node.js with interactive lessons. - The Art of Node (https://github.com/maxogden/art-of-node/#the-art-of-node) - An introduction to Node.js. - module-best-practices (https://github.com/mattdesl/module-best-practices) - Some good practices when writing new npm modules. - The Node Way (https://github.com/FredKSchott/the-node-way) - An entire philosophy of Node.js best practices and guiding principles exists for writing maintainable modules, scalable applications, and code that is actually pleasant to read. - You Don't Know Node.js (https://github.com/azat-co/you-dont-know-node) - Introduction to Node.js core features and asynchronous JavaScript. - Portable Node.js guide (https://github.com/ehmicky/cross-platform-node-guide) - Practical guide on how to write portable/cross-platform Node.js code. - Build a real web app with no frameworks (https://frameworkless.js.org/course) - A set of video tutorials/livestreams to help you build and deploy a real, live web app using a handful of simple libraries and the core Node.js modules. Discovery - npms (https://npms.io) - Superb package search with deep analysis of package quality using a myriad of metrics (https://npms.io/about). - npm addict (https://npmaddict.com) - Your daily injection of npm packages. Articles - Error Handling in Node.js (https://sematext.com/blog/node-js-error-handling/) - Teach Yourself Node.js in 10 Steps (https://ponyfoo.com/articles/teach-yourself-nodejs-in-10-steps) - Mastering the filesystem in Node.js (https://medium.com/@yoshuawuyts/mastering-the-filesystem-in-node-js-4706b7cb0801) - Semver: A Primer (https://nodesource.com/blog/semver-a-primer/) - Semver: Tilde and Caret (https://nodesource.com/blog/semver-tilde-and-caret/) - Why Asynchronous? (https://nodesource.com/blog/why-asynchronous/) - Understanding the Node.js Event Loop (https://nodesource.com/blog/understanding-the-nodejs-event-loop/) - Understanding Object Streams (https://nodesource.com/blog/understanding-object-streams/) - Using Express to Quickly Build a GraphQL Server (https://snipcart.com/blog/graphql-nodejs-express-tutorial) Newsletters - Node Weekly (https://nodeweekly.com) - Weekly e-mail round-up of Node.js news and articles. Videos - Introduction to Node.js with Ryan Dahl (https://www.youtube.com/watch?v=jo_B4LTHi3I) - Hands on with Node.js (https://learn.bevry.me/hands-on-with-node.js/preface) - V8 Garbage Collector (https://v8.dev/blog/trash-talk) - Trash talk about the V8 garbage collector. - 10 Things I Regret About Node.js by Ryan Dahl (https://www.youtube.com/watch?v=M3BM9TB-8yA) - Insightful talk by the creator of Node.js about some of its limitions. - Mastering REST APIs in Node.js: Zero-To-Hero (https://www.manning.com/livevideo/mastering-rest-apis-in-nodejs) - Video course on how to make REST APIs using Node.js. - Make a vanilla Node.js REST API (https://www.youtube.com/watch?v=_1xa8Bsho6A) - Building a REST API without using a framework like Express. - Google I/O 2009 - V8: High Performance JavaScript Engine (https://www.youtube.com/watch?v=FrufJFBSoQY) - The basics of V8 architecture and how it optimizes JavaScript execution. - Google I/O 2012 - Breaking the JavaScript Speed Limit with V8 (https://www.youtube.com/watch?v=UJPdhx5zTaw) - How V8 optimizes JavaScript execution. - Google I/O 2013 - Accelerating Oz with V8: Follow the Yellow Brick Road to JavaScript Performance (https://www.youtube.com/watch?v=VhpdsjBUS3g) - How to detect app bottlenecks and optimize performance with V8 knowledge. - Node.js Internal Architecture | Ignition, Turbofan, Libuv (https://www.youtube.com/watch?v=OCjvhCFFPTw) - How Node.js works internally, with a focus on V8 and libuv. - Introduction to libuv: What's a Unicorn Velociraptor? (https://www.youtube.com/watch?v=_c51fcXRLGw) - libuv architecture, thread pool, and event loop, with its source code. - libuv Cross platform asynchronous i/o (https://www.youtube.com/watch?v=kCJ3PFU8Ke8) - libuv architecture in detail, such as where it's actually using threads. - You Don't Know Node - ForwardJS San Francisco (https://www.youtube.com/watch?v=oPo4EQmkjvY) - Explaining Node.js internals with quizzes about V8, libuv, event loop, module, stream, and cluster. Books - Node.js in Action (https://www.manning.com/books/node-js-in-action-second-edition) - Node.js in Practice (https://www.amazon.com/Node-js-Practice-Alex-R-Young/dp/1617290939) - Mastering Node (https://visionmedia.github.io/masteringnode/) - Node.js 8 the Right Way (https://pragprog.com/book/jwnode2/node-js-8-the-right-way/) - Professional Node.js: Building JavaScript Based Scalable Software (https://www.amazon.com/Professional-Node-js-Building-Javascript-Scalable-ebook/dp/B009L7QETY/) - Secure Your Node.js Web Application (https://www.amazon.com/Secure-Your-Node-js-Web-Application/dp/1680500856) - Express in Action (https://www.manning.com/books/express-in-action) - Practical Modern JavaScript (https://www.amazon.com/Practical-Modern-JavaScript-Dive-Future/dp/149194353X) - Mastering Modular JavaScript (https://www.amazon.com/Mastering-Modular-JavaScript-Nicolas-Bevacqua/dp/1491955686/) - Get Programming with Node.js (https://www.manning.com/books/get-programming-with-node-js) - Node.js Cookbook (https://www.amazon.com/dp/1838558756) - Node.js Design Patterns (https://www.nodejsdesignpatterns.com) Blogs - Node.js blog (https://nodejs.org/en/blog/) - webapplog.com (https://webapplog.com/tag/node-js/) - Blog posts on Node.js and JavaScript from the author of Practical Node.js and Pro Express.js Azat Mardan. Courses - Learn to build apps and APIs with Node.js (https://learnnode.com/friend/AWESOME) - Video course by Wes Bos. - Real Time Web with Node.js (https://www.pluralsight.com/courses/code-school-real-time-web-with-nodejs) - Learn and Understand Node.js (https://www.udemy.com/course/understand-nodejs/) - Node.js Full Stack Developer Course (https://kinsta.com/academy/course/node-js-full-stack-developer/) Cheatsheets - Express.js (https://github.com/azat-co/cheatsheets/tree/master/express4) - Stream FAQs (https://github.com/stephenplusplus/stream-faqs) - Answering common questions about streams, covering pagination, events, and more. - Strong Node.js (https://github.com/jesusprubio/strong-node) - Checklist for source code security analysis of a Node.js web service. Tools - OctoLinker (https://chrome.google.com/webstore/detail/octolinker/jlmafbaeoofdegohdhinkhilhclaklkp) - Chrome extension that linkifies dependencies in package.json, .js, .jsx, .coffee and .md files on GitHub. - npm-hub (https://chrome.google.com/webstore/detail/npmhub/kbbbjimdjbjclaebffknlabpogocablj) - Chrome extension to display npm dependencies at the bottom of a repo's readme. - RunKit (https://runkit.com) - Embed a Node.js environment on any website. - github-npm-stats (https://chrome.google.com/webstore/detail/github-npm-stats/oomfflokggoffaiagenekchfnpighcef) - Chrome extension that displays npm download stats on GitHub. - npm semver calculator (https://semver.npmjs.com) - Visually explore what versions of a package a semver range matches. - CodeSandbox (https://codesandbox.io/templates/node-http-server) - Online IDE and prototyping. - Amplication (https://github.com/amplication/amplication) - Auto-generates fully functional apps. - RunJS (https://runjs.app) - Desktop JavaScript playground. Community - Stack Overflow (https://stackoverflow.com/questions/tagged/node.js) - Reddit (https://www.reddit.com/r/node) - Twitter (https://twitter.com/nodejs) - Hashnode (https://hashnode.com/n/nodejs) - Discord (https://discord.com/invite/96WGtJt) Miscellaneous - nodebots (https://nodebots.io) - Robots powered by JavaScript. - node-module-boilerplate (https://github.com/sindresorhus/node-module-boilerplate) - Boilerplate to kickstart creating a node module. - modern-node (https://github.com/sheerun/modern-node) - Toolkit for creating node modules with Jest, Prettier, ESLint, and Standard. - generator-nm (https://github.com/sindresorhus/generator-nm) - Scaffold out a node module. - Microsoft Node.js Guidelines (https://github.com/Microsoft/nodejs-guidelines) - Tips, tricks, and resources for working with Node.js on Microsoft platforms. - Module Requests & Ideas (https://github.com/sindresorhus/project-ideas) - Request a JavaScript module you wish existed or get ideas for modules. - v8-perf (https://github.com/thlorenz/v8-perf) - Notes and resources related to V8 and thus Node.js performance. Related lists - awesome-npm (https://github.com/sindresorhus/awesome-npm) - Resources and tips for using npm. - awesome-cross-platform-nodejs (https://github.com/bcoe/awesome-cross-platform-nodejs) - Resources for writing and testing cross-platform code. nodejs Github: https://github.com/sindresorhus/awesome-nodejs