My open source work is supported by the community
Special thanks to:
An open-source framework that supports any programming language, cloud provider, or deployment automation tool.
Flow is built for devs who live in their tools. Speak and give more context, get better results.
Just type node.cool to go here. Follow me on Twitter.
Node.js is an open-source, cross-platform, JavaScript runtime for writing servers and command-line tools.
- Official
- Packages
- Mad science
- Command-line apps
- Functional programming
- HTTP
- Debugging / Profiling
- Logging
- Command-line utilities
- Build tools
- Hardware
- Templating
- Web frameworks
- Documentation
- Filesystem
- Control flow
- Streams
- Real-time
- Image
- Text
- Number
- Math
- Date
- URL
- Data validation
- Parsing
- Humanize
- Compression
- Network
- Database
- Testing
- Security
- Benchmarking
- Minifiers
- Authentication
- Authorization
- Job queues
- Node.js management
- Cross-platform integration
- Natural language processing
- Process management
- Automation
- AST
- Static site generators
- Content management systems
- Forum
- Blogging
- Weird
- Serialization
- Miscellaneous
- Package Manager
- Resources
- Related lists
- 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.
- 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.
- 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.
- 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.
- gotql - GraphQL request library built on got.
- 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.
- 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.
- dats - Minimalistic and zero-dependencies StatsD client.
- 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.
- 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 JavaScript.
- 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.
- 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).
- 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.
- 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.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.
- 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.
- Promises
- Observables
- RxJS - Reactive programming.
- observable-to-promise - Convert an Observable to a Promise.
- More…
- Streams
- Highland.js - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
- 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.
- µ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.