Node.js
Contents_Index
- OFFICIAL3
- MAD SCIENCE19
- COMMAND-LINE APPS47
- FUNCTIONAL PROGRAMMING6
- HTTP12
- DEBUGGING / PROFILING14
- LOGGING5
- COMMAND-LINE UTILITIES40
- BUILD TOOLS9
- HARDWARE9
- TEMPLATING5
- WEB FRAMEWORKS23
- DOCUMENTATION4
- FILESYSTEM16
- STREAMS13
- REAL-TIME10
- IMAGE8
- TEXT16
- NUMBER4
- MATH5
- DATE6
- URL7
- DATA VALIDATION8
- PARSING24
- HUMANIZE5
- COMPRESSION5
- NETWORK5
- TESTING28
- SECURITY6
- BENCHMARKING1
- MINIFIERS5
- AUTHENTICATION2
- AUTHORIZATION2
- EMAIL5
- JOB QUEUES12
- NODE.JS MANAGEMENT6
- CROSS-PLATFORM INTEGRATION4
- NATURAL LANGUAGE PROCESSING5
- PROCESS MANAGEMENT7
- AUTOMATION2
- AST2
- STATIC SITE GENERATORS3
- CONTENT MANAGEMENT SYSTEMS6
- FORUM1
- BLOGGING2
- WEIRD9
- SERIALIZATION3
- MISCELLANEOUS33
- PACKAGE MANAGER4
- TUTORIALS8
- DISCOVERY2
- ARTICLES9
- NEWSLETTERS1
- VIDEOS13
- BOOKS12
- BLOGS2
- COURSES4
- CHEATSHEETS3
- TOOLS8
- COMMUNITY5
- MISCELLANEOUS7
- RELATED LISTS2
Official
3_ENTRIESMad science
19_ENTRIES- webtorrent
Streaming torrent client for Node.js and the browser.
- peerflix
Streaming torrent client.
- ipfs
Distributed file system that seeks to connect all computing devices with the same system of files.
- stackgl
Open software ecosystem for WebGL, built on top of browserify and npm.
- peerwiki
All of Wikipedia on BitTorrent.
- peercast
Stream a torrent video to Chromecast.
- BitcoinJS
Clean, readable, proven Bitcoin library.
- Bitcore
Pure and powerful Bitcoin library.
- PDFKit
PDF generation library.
- turf
Modular geospatial processing and analysis engine.
- webcat
p2p pipe across the web using WebRTC that uses your GitHub private/public key for authentication.
- NodeOS
The first operating system powered by npm.
- YodaOS
AI operating system.
- Brain.js
Machine-learning framework.
- Pipcook
Front-end algorithm framework to create a machine learning pipeline.
- Cytoscape.js
Graph theory (a.k.a. network) modeling and analysis.
- js-git
JavaScript implementation of Git.
- xlsx
Pure JS Excel spreadsheet reader and writer.
- isomorphic-git
Pure JavaScript implementation of Git.
Command-line apps
47_ENTRIES- np
Better
npm publish. - npm-name
Check a package name's availability on npm.
- gh-home
Open the GitHub page of the repo in the current directory.
- npm-home
Open the npm page of a package.
- trash
Safer alternative to
rm. - speed-test
Test your internet connection speed and ping.
- pageres
Capture website screenshots.
- cpy
Copy files.
- vtop
More better top, with nice charts.
- empty-trash
Empty the trash.
- is-up
Check whether a website is up or down.
- is-online
Check if the internet connection is up.
- public-ip
Get your public IP address.
- clipboard-cli
Copy & paste on the terminal.
- XO
Enforce strict code style using the JavaScript happiness style.
- ESLint
The pluggable linting utility for JavaScript.
- David
Tells you when your package npm dependencies are out of date.
- http-server
Simple, zero-config command-line HTTP server.
- Live Server
Development HTTP-server with livereload capability.
- bcat
Pipe command output to web browsers.
- normit
Google Translate with speech synthesis in your terminal.
- fkill
Fabulously kill processes. Cross-platform.
- pjs
Pipeable JavaScript. Quickly filter, map, and reduce from the terminal.
- license-checker
Check licenses of your app's dependencies.
- browser-run
Easily run code in a browser environment.
- tmpin
Adds stdin support to any CLI app that accepts file input.
- wallpaper
Change the desktop wallpaper.
- pen
Live Markdown preview in the browser from your favorite editor.
- dark-mode
Toggle the macOS Dark Mode.
- Jsome
Pretty prints JSON with configurable colors and indentation.
- mobicon
Mobile app icon generator.
- mobisplash
Mobile app splash screen generator.
- diff2html-cli
Pretty git diff to HTML generator.
- trymodule
Try out npm packages in the terminal.
- jscpd
Copy/paste detector for source code.
- atmo
Server-side API mocking.
- auto-install
Auto installs dependencies as you code.
- cost-of-modules
Find out which dependencies are slowing you down.
- localtunnel
Expose your localhost to the world.
- svg-term-cli
Share terminal sessions via SVG.
- gtop
System monitoring dashboard for the terminal.
- themer
Generate themes for your editor, terminal, wallpaper, Slack, and more.
- carbon-now-cli
Beautiful images of your code — from right inside your terminal.
- cash-cli
Convert between 170 currencies.
- taskbook
Tasks, boards & notes for the command-line habitat.
- discharge
Easily deploy static websites to Amazon S3.
- npkill
Easily find and remove old and heavy node_modules folders.
Functional programming
6_ENTRIES- lodash
Utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.
- immutable
Immutable data collections.
- Ramda
Utility library with a focus on flexible functional composition enabled by automatic currying and reversed argument order. Avoids mutating data.
- 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
Functional reactive library for transforming, composing, and querying various kinds of data.
- Kefir.js
Reactive library with focus on high performance and low memory usage.
HTTP
12_ENTRIES- got
Nicer interface to the built-in
httpmodule. - undici
High performance HTTP client written from scratch with zero dependencies.
- ky-universal
Universal HTTP client based on Fetch.
- node-fetch
window.fetchfor Node.js. - axios
Promise based HTTP client (works in the browser too).
- superagent
HTTP request library.
- http-fake-backend
Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
- cacheable-request
Wrap native HTTP requests with RFC compliant cache support.
- global-agent
Global HTTP/HTTPS proxy agent that is configurable using environment variables.
- smoke
File-based HTTP mock server with recording abilities.
- purest
REST client.
Debugging / Profiling
14_ENTRIES- debug
Tiny debugging utility.
- why-is-node-running
Node.js is running but you don't know why?
- njsTrace
Instrument and trace your code, see all function calls, arguments, return values, as well as the time spent in each function.
- vstream
Instrumentable streams mix-ins to inspect a pipeline of streams.
- stackman
Enhance an error stacktrace with code excerpts and other goodies.
- locus
Starts a REPL at runtime that has access to all variables.
- 0x
Flamegraph profiling.
- ctrace
Well-formatted and improved trace system calls and signals.
- leakage
Write memory leak tests.
- llnode
Post-mortem analysis tool which allows you to inspect objects and get insights from a crashed Node.js process.
- thetool
Capture different CPU, memory, and other profiles for your app in Chrome DevTools friendly format.
- swagger-stats
Trace API calls and monitor API performance, health, and usage metrics.
- NiM
Manages DevTools debugging workflow.
Logging
5_ENTRIES- pino
Extremely fast logger inspired by Bunyan.
- winston
Multi-transport async logging library.
- console-log-level
The most simple logger imaginable with support for log levels and custom prefixes.
- storyboard
End-to-end, hierarchical, real-time, colorful logs and stories.
- consola
Console logger.
Command-line utilities
40_ENTRIES- chalk
Terminal string styling done right.
- meow
CLI app helper.
- yargs
Command-line parser that automatically generates an elegant user-interface.
- ora
Elegant terminal spinner.
- get-stdin
Easier stdin.
- log-update
Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.
- Ink
React for interactive command-line apps.
- listr2
Terminal task list.
- conf
Simple config handling for your app or module.
- ansi-escapes
ANSI escape codes for manipulating the terminal.
- log-symbols
Colored symbols for various log levels.
- figures
Unicode symbols with Windows CMD fallbacks.
- boxen
Create boxes in the terminal.
- terminal-link
Create clickable links in the terminal.
- terminal-image
Display images in the terminal.
- string-width
Get the visual width of a string - the number of columns required to display it.
- cli-truncate
Truncate a string to a specific width in the terminal.
- blessed
Curses-like library.
- Inquirer.js
Interactive command-line prompt.
- yn
Parse yes/no like values.
- cli-table3
Pretty unicode tables.
- drawille
Draw on the terminal with unicode braille characters.
- ascii-charts
ASCII bar chart in the terminal.
- progress
Flexible ascii progress bar.
- insight
Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics.
- cli-cursor
Toggle the CLI cursor.
- cli-columns
Columnated unicode and ansi-safe text lists.
- cfonts
Sexy ASCII fonts for the console.
- multispinner
Multiple, simultaneous, individually controllable CLI spinners.
- omelette
Shell autocompletion helper.
- cross-env
Set environment variables cross-platform.
- shelljs
Portable Unix shell commands.
- sudo-block
Block users from running your app with root permissions.
- sparkly
Generate sparklines
▁▂▃▅▂▇. - Bit
Create, maintain, find and use small modules and components across repositories.
- gradient-string
Beautiful color gradients in terminal output.
- oclif
CLI framework complete with parser, automatic documentation, testing, and plugins.
- terminal-size
Reliably get the terminal window size.
- Cliffy
Framework for interactive CLIs.
- zx
Write shell scripts in JavaScript.
Build tools
9_ENTRIES- parcel
Blazing fast, zero config web app bundler.
- webpack
Packs modules and assets for the browser.
- rollup
Next-generation ES2015 module bundler.
- gulp
Streaming and fast build system that favors code over config.
- Broccoli
Fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions.
- Brunch
Front-end web app build tool with simple declarative config, fast incremental compilation, and an opinionated workflow.
- FuseBox
Fast build system that combines the power of webpack, JSPM and SystemJS, with first-class TypeScript support.
- pkg
Package your Node.js project into an executable.
- Vite
Front-end build tool with hot module replacement and static asset bundling.
Hardware
9_ENTRIES- johnny-five
Firmata based Arduino Framework.
- serialport
Access serial ports for reading and writing.
- 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 notification, and interrupt handling on the Raspberry Pi.
- gps
NMEA parser for handling GPS receivers.
- modbus-serial
A pure JavaScript implementation of MODBUS-RTU (serial and TCP).
Templating
5_ENTRIES- marko
HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags.
- nunjucks
Templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
- handlebars.js
Superset of Mustache templates which adds powerful features like helpers and more advanced blocks.
- EJS
Simple unopinionated templating language.
- Pug
High-performance template engine heavily influenced by Haml.
Web frameworks
23_ENTRIES- Fastify
Fast and low overhead web framework.
- Next.js
Minimalistic framework for server-rendered universal JavaScript web apps.
- Nuxt.js
Minimalistic framework for server-rendered Vue.js apps.
- Hapi
Framework for building applications and services.
- Micro
Minimalistic microservice framework with an async approach.
- 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
Web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
- Feathers
Microservice framework built in the spirit of Express.
- LoopBack
Powerful framework for creating REST APIs and easily connecting to backend data sources.
- Meteor
An ultra-simple, database-everywhere, data-on-the-wire, pure-JavaScript web framework. (You might like awesome-meteor)
- Restify
Enables you to build correct REST web services.
- ThinkJS
Framework with ES2015+ support, WebSockets, REST API.
- ActionHero
Framework for making reusable & scalable APIs for TCP sockets, WebSockets, and HTTP clients.
- seneca
Toolkit for writing microservices.
- AdonisJs
A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.
- Moleculer
Fast & powerful microservices framework.
- Nest
Angular-inspired framework for building efficient and scalable server-side apps.
- TypeGraphQL
Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators.
- Tinyhttp
Modern and fast Express-like web framework.
- Marble.js
Functional reactive framework for building server-side apps, based on TypeScript and RxJS.
- Lad
Framework made by a former Express TC and Koa member that bundles web, API, job, and proxy servers.
- Ts.ED
Intuitive TypeScript framework for building server-side apps on top of Express.js or Koa.js.
- Hono
Small and fast web framework.
Documentation
4_ENTRIES- documentation.js
API documentation generator with support for ES2015+ and flow annotation.
- Docco
Documentation generator which produces an HTML document that displays your comments intermingled with your code.
- JSDoc
API documentation generator similar to JavaDoc or PHPDoc.
- Docusaurus
Documentation website generator that leverages React and Markdown, and comes with translation and versioning features.
Filesystem
16_ENTRIES- del
Delete files/folders using globs.
- globby
Glob files with support for multiple patterns.
- chokidar
Filesystem watcher which stabilizes events from
fs.watchandfs.watchFileas well as using nativefseventson macOS. - find-up
Find a file by walking up parent directories.
- proper-lockfile
Inter-process and inter-machine lockfile utility.
- load-json-file
Read and parse a JSON file.
- write-json-file
Stringify and write JSON to a file atomically.
- fs-write-stream-atomic
Like
fs.createWriteStream(), but atomic. - filenamify
Convert a string to a valid filename.
- istextorbinary
Check if a file is text or binary.
- fs-jetpack
Completely redesigned file system API for convenience in everyday use.
- fs-extra
Extra methods for the
fsmodule. - package-directory
Find the root directory of an npm package.
- filehound
Flexible and fluent interface for searching the file system.
- move-file
Move a file, even works across devices.
- tempy
Get a random temporary file or directory path.
Streams
13_ENTRIES- get-stream
Get a stream as a string or buffer.
- from2
Convenience wrapper for ReadableStream, inspired by
through2. - into-stream
Convert a buffer/string/array/object into a stream.
- duplexify
Turn a writeable and readable stream into a single streams2 duplex stream.
- pumpify
Combine an array of streams into a single duplex stream.
- peek-stream
Transform stream that lets you peek the first line before deciding how to parse it.
- binary-split
Newline (or any delimiter) splitter 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 a stream.
- multistream
Combine multiple streams into a single stream.
- readable-stream
Mirror of Streams2 and Streams3 implementations in core.
- through2-concurrent
Transform object streams concurrently.
Real-time
10_ENTRIES- µWebSockets
Highly scalable WebSocket server & client library.
- Socket.io
Enables real-time bidirectional event-based communication.
- Faye
Real-time client-server message bus, based on Bayeux protocol.
- SocketCluster
Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
- Primus
An abstraction layer for real-time frameworks to prevent module lock-in.
- deepstream.io
Scalable real-time microservice framework.
- Kalm
Low-level socket router and middleware framework.
- MQTT.js
Client for MQTT - Pub-sub based messaging protocol for use on top of TCP/IP.
- rpc-websockets
JSON-RPC 2.0 implementation over WebSockets.
- Aedes
Barebone MQTT server that can run on any stream server.
Image
8_ENTRIES- sharp
The fastest module for resizing JPEG, PNG, WebP and TIFF images.
- image-type
Detect the type of an image.
- image-dimensions
Get the dimensions of an image.
- lwip
Lightweight image processor which does not require ImageMagick.
- pica
High quality & fast resize (lanczos3) in pure JS. Alternative to canvas drawImage(), when no pixelation allowed.
- jimp
Image processing in pure JavaScript.
- qrcode
QR code and bar code generator.
- ImageScript
Image processing in JavaScript, utilizing WebAssembly for performance.
Text
16_ENTRIES- iconv-lite
Convert character encodings.
- string-length
Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes.
- camelcase
Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar.
- escape-string-regexp
Escape RegExp special characters.
- splice-string
Remove or replace part of a string like
Array#splice. - indent-string
Indent each line in a string.
- strip-indent
Strip leading whitespace from every line in a string.
- detect-indent
Detect the indentation of code.
- he
HTML entity encoder/decoder.
- i18n-node
Simple translation module with dynamic JSON storage.
- babelfish
i18n with very easy syntax for plurals.
- matcher
Simple wildcard matching.
- unhomoglyph
Normalize visually similar unicode characters.
- i18next
Internationalization framework.
- nanoid
Tiny, secure, URL-friendly, unique string ID generator.
- StegCloak
Conceal secrets within strings, in plain sight.
Number
4_ENTRIES- random-int
Generate a random integer.
- random-float
Generate a random float.
- unique-random
Generate random numbers that are consecutively unique.
- round-to
Round a number to a specific number of decimal places:
1.234→1.2.
Math
5_ENTRIES- ndarray
Multidimensional arrays.
- mathjs
An extensive math library.
- math-clamp
Clamp a number.
- algebra
Algebraic structures.
- multimath
Core to create fast image math in WebAssembly and JS.
Date
6_ENTRIESURL
7_ENTRIES- normalize-url
Normalize a URL.
- humanize-url
Humanize a URL: https://sindresorhus.com → sindresorhus.com.
- url-unshort
Expand shortened URLs.
- speakingurl
Generate a slug from a string with transliteration.
- linkify-it
Link patterns detector with full unicode support.
- url-pattern
Easier than regex string matching patterns for URLs and other strings.
- embedza
Create HTML snippets/embeds from URLs using info from oEmbed, Open Graph, meta tags.
Data validation
8_ENTRIES- joi
Object schema description language and validator for JavaScript objects.
- is-my-json-valid
JSON Schema validator that uses code generation to be extremely fast.
- property-validator
Easy property validation for Express.
- schema-inspector
JSON API sanitization and validation.
- ajv
The fastest JSON Schema validator. Supports v5, v6 and v7 proposals.
- Superstruct
Simple and composable way to validate data in JavaScript (and TypeScript).
- yup
Object schema validation.
- zod
TypeScript-first schema validation with static type inference.
Parsing
24_ENTRIES- remark
Markdown processor powered by plugins.
- markdown-it
Markdown parser with 100% CommonMark support, extensions and syntax plugins.
- parse5
Fast full-featured spec compliant HTML parser.
- @parcel/css
A CSS parser, transformer, and minifier written in Rust.
- strip-json-comments
Strip comments from JSON.
- strip-css-comments
Strip comments from CSS.
- parse-json
Parse JSON with more helpful errors.
- URI.js
URL mutation.
- JSONStream
Streaming JSON.parse and stringify.
- neat-csv
Fast CSV parser. Callback interface for the above.
- csv-parser
Streaming CSV parser that aims to be faster than everyone else.
- PEG.js
Simple parser generator that produces fast parsers with excellent error reporting.
- x-ray
Web scraping utility.
- nearley
Simple, fast, powerful parsing for JavaScript.
- binary-extract
Extract a value from a buffer of JSON without parsing the whole thing.
- Stylecow
Parse, manipulate and convert modern CSS to make it compatible with all browsers. Extensible with plugins.
- js-yaml
Very fast YAML parser.
- xml2js
XML to JavaScript object converter.
- Jison
Friendly JavaScript parser generator. It shares genes with 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
Very fast and feature rich parser building toolkit for JavaScript.
- fast-xml-parser
Validate and parse XML.
Humanize
5_ENTRIES- pretty-bytes
Convert bytes to a human readable string:
1337→1.34 kB. - pretty-ms
Convert milliseconds to a human readable string:
1337000000→15d 11h 23m 20s. - ms
Tiny millisecond conversion utility.
- pretty-error
Errors with less clutter.
- read-art
Extract readable content from any page.
Compression
5_ENTRIESNetwork
5_ENTRIESTesting
28_ENTRIES- AVA
Futuristic test runner.
- Mocha
Feature-rich test framework making asynchronous testing simple and fun.
- nyc
Code coverage tool built on istanbul that works with subprocesses.
- tap
TAP test framework.
- tape
TAP-producing test harness.
- power-assert
Provides descriptive assertion messages through the standard assert interface.
- Mochify
TDD with Browserify, Mocha, PhantomJS and WebDriver.
- trevor
Run tests against multiple versions of Node.js without switching versions manually or pushing to Travis CI.
- loadtest
Run load tests for your web application, with an API for automation.
- Sinon.JS
Test spies, stubs and mocks.
- navit
PhantomJS / SlimerJS wrapper to simplify browser test scripting.
- Nock
HTTP mocking and expectations.
- intern
Code testing stack.
- toxy
Hackable HTTP proxy to simulate failure scenarios and network conditions.
- hook-std
Hook and modify stdout/stderr.
- testen
Run tests for multiple versions of Node.js locally with NVM.
- Nightwatch
Automated UI testing framework based on Selenium WebDriver.
- WebdriverIO
Automated testing based on the WebDriver protocol.
- Jest
Painless JavaScript testing.
- Vitest
Fast unit test framework powered by Vite.
- TestCafe
Automated browser testing.
- abstruse
Continuous Integration server.
- CodeceptJS
End-to-end testing.
- Puppeteer
Headless Chrome.
- Playwright
Headless Chromium, WebKit, and Firefox with a single API.
- nve
Run any command on multiple versions of Node.js locally.
- axe-core
Accessibility engine for automated Web UI testing.
- testcontainers-node
Provides lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
Security
6_ENTRIES- upash
Unified API for all password hashing algorithms.
- themis
Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on.
- GuardRails
GitHub app that provides security feedback in pull requests.
- rate-limiter-flexible
Brute-force and DDoS attack protection.
- crypto-hash
Async non-blocking hashing.
- jose-simple
Encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.
Benchmarking
1_ENTRIES- Benchmark.js
Benchmarking library that supports high-resolution timers and returns statistically significant results.
Minifiers
5_ENTRIES- babel-minify
ES2015+ aware minifier based on the Babel toolchain.
- UglifyJS2
JavaScript minifier.
- clean-css
CSS minifier.
- minimize
HTML minifier.
- imagemin
Image minifier.
Authentication
2_ENTRIESAuthorization
2_ENTRIES- CASL
Isomorphic authorization for UI and API.
- node-casbin
Authorization library that supports access control models like ACL, RBAC and ABAC.
- Nodemailer
The fastest way to handle email.
- emailjs
Send text/HTML emails with attachments to any SMTP server.
- email-templates
Create, preview, and send custom email templates.
- MJML
Markup language designed to reduce the pain of creating responsive emails.
- Forward Email
Open-source and self-hostable email service.
Job queues
12_ENTRIES- bull
Persistent job and message queue.
- agenda
MongoDB-backed job scheduling.
- idoit
Redis-backed job queue engine with advanced job control.
- node-resque
Redis-backed job queue.
- rsmq
Redis-backed message queue.
- bee-queue
High-performance Redis-backed job queue.
- RedisSMQ
Simple high-performance Redis message queue with real-time monitoring.
- sqs-consumer
Build Amazon Simple Queue Service (SQS) based apps without the boilerplate.
- better-queue
Simple and efficient job queue when you cannot use Redis.
- bullmq
Persistent job and message queue.
- bree
Job task scheduler with worker threads, cron, date, and human syntax support.
- graphile-worker
High performance PostgreSQL job queue.
Node.js management
6_ENTRIES- n
Node.js version management.
- nave
Virtual Environments for Node.js.
- nodeenv
Node.js virtual environment compatible to Python's virtualenv.
- nvm for Windows
Version management for Windows.
- nodenv
Version manager that is similar to Ruby's rbenv. It supports auto version switching.
- fnm
Cross-platform Node.js version manager built in Rust.
Cross-platform integration
4_ENTRIES- napi-rs
Framework for building compiled Node.js add-ons in Rust via Node-API.
- Neon
Rust bindings for writing safe and fast native Node.js modules.
- Edge.js
Run .NET and Node.js code in the same process on Windows, macOS, and Linux.
- DotNetJS
Consume .NET libraries in Node.js using this .NET interoperability layer.
Natural language processing
5_ENTRIES- retext
An extensible natural language system.
- franc
Detect the language of text.
- leven
Measure the difference between two strings using the Levenshtein distance algorithm.
- natural
Natural language facility.
- nlp.js
Building bots, with entity extraction, sentiment analysis, automatic language identification, and more.
Process management
7_ENTRIES- PM2
Advanced Process Manager.
- nodemon
Monitor for changes in your app and automatically restart the server.
- node-mac
Run scripts as a native Mac daemon and log to the console app.
- node-linux
Run scripts as native system service and log to syslog.
- node-windows
Run scripts as a native Windows service and log to the Event viewer.
- supervisor
Restart scripts when they crash or restart when a
*.jsfile changes. - Phusion Passenger
Friendly process manager that integrates directly into Nginx.
Automation
2_ENTRIESAST
2_ENTRIES- Acorn
Tiny, fast JavaScript parser.
- babel-parser
JavaScript parser used in Babel.
Static site generators
3_ENTRIESContent management systems
6_ENTRIES- KeystoneJS
CMS and web application platform built on Express and MongoDB.
- ApostropheCMS
Content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB.
- Strapi
Content Management Framework (headless-CMS) to build powerful APIs.
- Factor
Vue.js dashboard framework and headless CMS.
- AdminBro
Auto-generated admin panel with CRUD for all your resources.
- Graphweaver
CMS and headless GraphQL API.
Forum
1_ENTRIES- nodeBB
Forum platform for the modern web.
Blogging
2_ENTRIESWeird
9_ENTRIES- cows
ASCII cows.
- superb
Get superb like words.
- cat-names
Get popular cat names.
- dog-names
Get popular dog names.
- superheroes
Get superhero names.
- supervillains
Get supervillain names.
- cool-ascii-faces
Get some cool ascii faces.
- cat-ascii-faces
₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”. - nerds
Get data from nerdy topics like Harry Potter, Star Wars, and Pokémon.
Serialization
3_ENTRIESMiscellaneous
33_ENTRIES- execa
Better
child_process. - cheerio
Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
- open
Opens stuff like websites, files, executables.
- hasha
Hashing made simple. Get the hash of a buffer/string/stream/file.
- dot-prop
Get a property from a nested object using a dot path.
- onetime
Only run a function once.
- mem
Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.
- strip-bom
Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
- os-locale
Get the system locale.
- ssh2
SSH2 client and server module.
- adit
SSH tunneling made simple.
- file-type
Detect the file type of a Buffer.
- Bottleneck
Rate limiter that makes throttling easy.
- webworker-threads
Lightweight Web Worker API implementation with native threads.
- clipboardy
Access the system clipboard (copy/paste).
- node-pre-gyp
Makes it easy to publish and install Node.js C++ addons from binaries.
- opencv
Bindings for OpenCV. The defacto computer vision library.
- dotenv
Load environment variables from .env file.
- semver
Semantic version parser.
- nodegit
Native bindings to Git.
- json-strictify
Safely serialize a value to JSON without data loss or going into an infinite loop.
- jsdom
JavaScript implementation of HTML and the DOM.
- @sindresorhus/is
Type check values.
- env-dot-prop
Get, set, or delete nested properties of process.env using a dot path.
- node-video-lib
Pure JavaScript library for working with MP4 and FLV video files and creating MPEG-TS chunks for HLS streaming.
- basic-ftp
FTP/FTPS client.
- cashify
Currency conversion.
- genepi
Automatically generate a native Node.js addon from C++ code.
- husky
Create Git hook scripts.
- patch-package
Make and preserve fixes to npm dependencies.
- editly
Declarative video editing API.
- wild-wild-path
Object property paths with wildcards and regexes.
- uint8array-extras
Useful utilities for working with Uint8Array and Buffer.
Package Manager
4_ENTRIESTutorials
8_ENTRIES- Node.js Best Practices
Summary and curation of the top-ranked content on Node.js best practices, available in multiple languages.
- Nodeschool
Learn Node.js with interactive lessons.
- The Art of Node
An introduction to Node.js.
- module-best-practices
Some good practices when writing new npm modules.
- 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
Introduction to Node.js core features and asynchronous JavaScript.
- Portable Node.js guide
Practical guide on how to write portable/cross-platform Node.js code.
- Build a real web app with no frameworks
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
2_ENTRIES- npms
Superb package search with deep analysis of package quality using a myriad of metrics.
- npm addict
Your daily injection of npm packages.
Articles
9_ENTRIESNewsletters
1_ENTRIES- Node Weekly
Weekly e-mail round-up of Node.js news and articles.
Videos
13_ENTRIES- V8 Garbage Collector
Trash talk about the V8 garbage collector.
- 10 Things I Regret About Node.js by Ryan Dahl
Insightful talk by the creator of Node.js about some of its limitations.
- Mastering REST APIs in Node.js: Zero-To-Hero
Video course on how to make REST APIs using Node.js.
- Make a vanilla Node.js REST API
Building a REST API without using a framework like Express.
- Google I/O 2009 - V8: High Performance JavaScript Engine
The basics of V8 architecture and how it optimizes JavaScript execution.
- Google I/O 2012 - Breaking the JavaScript Speed Limit with V8
How V8 optimizes JavaScript execution.
- Google I/O 2013 - Accelerating Oz with V8: Follow the Yellow Brick Road to JavaScript Performance
How to detect app bottlenecks and optimize performance with V8 knowledge.
- Node.js Internal Architecture | Ignition, Turbofan, Libuv
How Node.js works internally, with a focus on V8 and libuv.
- Introduction to libuv: What's a Unicorn Velociraptor?
libuvarchitecture, thread pool, and event loop, with its source code. - libuv Cross platform asynchronous i/o
libuvarchitecture in detail, such as where it's actually using threads. - You Don't Know Node - ForwardJS San Francisco
Explaining Node.js internals with quizzes about V8, libuv, event loop, module, stream, and cluster.
Books
12_ENTRIESBlogs
2_ENTRIES- webapplog.com
Blog posts on Node.js and JavaScript from the author of Practical Node.js and Pro Express.js Azat Mardan.
Courses
4_ENTRIES- Learn to build apps and APIs with Node.js
Video course by Wes Bos.
Cheatsheets
3_ENTRIES- Stream FAQs
Answering common questions about streams, covering pagination, events, and more.
- Strong Node.js
Checklist for source code security analysis of a Node.js web service.
Tools
8_ENTRIES- OctoLinker
Chrome extension that linkifies dependencies in package.json, .js, .jsx, .coffee and .md files on GitHub.
- npm-hub
Chrome extension to display npm dependencies at the bottom of a repo's readme.
- RunKit
Embed a Node.js environment on any website.
- github-npm-stats
Chrome extension that displays npm download stats on GitHub.
- npm semver calculator
Visually explore what versions of a package a semver range matches.
- CodeSandbox
Online IDE and prototyping.
- Amplication
Auto-generates fully functional apps.
- RunJS
Desktop JavaScript playground.
Community
5_ENTRIESMiscellaneous
7_ENTRIES- nodebots
Robots powered by JavaScript.
- node-module-boilerplate
Boilerplate to kickstart creating a node module.
- modern-node
Toolkit for creating node modules with Jest, Prettier, ESLint, and Standard.
- generator-nm
Scaffold out a node module.
- Microsoft Node.js Guidelines
Tips, tricks, and resources for working with Node.js on Microsoft platforms.
- Module Requests & Ideas
Request a JavaScript module you wish existed or get ideas for modules.
- v8-perf
Notes and resources related to V8 and thus Node.js performance.