mirror of
https://github.com/sindresorhus/awesome-nodejs.git
synced 2024-11-20 11:27:17 -05:00
e499066ec3
Co-authored-by: Sindre Sorhus <sindresorhus@gmail.com>
1040 lines
75 KiB
Markdown
1040 lines
75 KiB
Markdown
<div align="center">
|
||
<div>
|
||
<img width="500" src="media/logo.svg" alt="Awesome Node.js">
|
||
<br>
|
||
<br>
|
||
<br>
|
||
<h3><a href="https://sindresorhus.com/one-thing">Check out my new One Thing app</a></h3>
|
||
<br>
|
||
<br>
|
||
</div>
|
||
<br>
|
||
<hr>
|
||
<p>
|
||
<p>
|
||
<sup>
|
||
<a href="https://github.com/sponsors/sindresorhus">My open source work is supported by the community</a>
|
||
</sup>
|
||
</p>
|
||
<sup>Special thanks to:</sup>
|
||
<br>
|
||
<br>
|
||
<a href="https://standardresume.co/tech">
|
||
<img src="https://sindresorhus.com/assets/thanks/standard-resume-logo.svg" width="160"/>
|
||
</a>
|
||
<br>
|
||
<br>
|
||
<a href="https://retool.com/?utm_campaign=sindresorhus">
|
||
<img src="https://sindresorhus.com/assets/thanks/retool-logo.svg" width="210"/>
|
||
</a>
|
||
<br>
|
||
<br>
|
||
<a href="https://doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesome-node&utm_source=github">
|
||
<div>
|
||
<img src="https://dashboard.doppler.com/imgs/logo-long.svg" width="240" alt="Doppler">
|
||
</div>
|
||
<b>All your environment variables, in one place</b>
|
||
<div>
|
||
<sub>Stop struggling with scattered API keys, hacking together home-brewed tools,</sub>
|
||
<br>
|
||
<sup>and avoiding access controls. Keep your team and servers in sync with Doppler.</sup>
|
||
</div>
|
||
</a>
|
||
<br>
|
||
<a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=awesome-nodejs&utm_source=github">
|
||
<div>
|
||
<img src="https://sindresorhus.com/assets/thanks/workos-logo-white-bg.svg" width="200" alt="WorkOS">
|
||
</div>
|
||
<b>Your app, enterprise-ready.</b>
|
||
<div>
|
||
<sub>Start selling to enterprise customers with just a few lines of code.</sub>
|
||
<br>
|
||
<sup>Add Single Sign-On (and more) in minutes instead of months.</sup>
|
||
</div>
|
||
</a>
|
||
<br>
|
||
<a href="https://strapi.io/?ref=sindresorhus">
|
||
<div>
|
||
<img src="https://sindresorhus.com/assets/thanks/strapi-logo-white-bg.png" width="200" alt="Strapi">
|
||
</div>
|
||
<b>Strapi is the leading open-source headless CMS.</b>
|
||
<div>
|
||
<sup>It’s 100% JavaScript, fully customizable, and developer-first.</sup>
|
||
</div>
|
||
</a>
|
||
<br>
|
||
<a href="https://oss.capital">
|
||
<div>
|
||
<img src="https://sindresorhus.com/assets/thanks/oss-capital-logo-white-bg.svg" width="300" alt="OSS Capital">
|
||
</div>
|
||
<div>
|
||
<sup><b>Founded in 2018, OSS Capital is the first and only venture capital platform focused<br>exclusively on supporting early-stage COSS (commercial open source) startup founders.</b></sup>
|
||
</div>
|
||
</a>
|
||
<br>
|
||
<br>
|
||
<a href="https://www.gitpod.io/?utm_campaign=sindresorhus&utm_medium=referral&utm_content=awesome&utm_source=github">
|
||
<div>
|
||
<img src="https://sindresorhus.com/assets/thanks/gitpod-logo-white-bg.svg" width="220" alt="Gitpod">
|
||
</div>
|
||
<b>Dev environments built for the cloud</b>
|
||
<div>
|
||
<sub>
|
||
Natively integrated with GitLab, GitHub, and Bitbucket, Gitpod automatically and continuously prebuilds dev
|
||
<br>
|
||
environments for all your branches. As a result team members can instantly start coding with fresh dev environments
|
||
<br>
|
||
for each new task - no matter if you are building a new feature, want to fix a bug, or work on a code review.
|
||
</sub>
|
||
</div>
|
||
</a>
|
||
<br>
|
||
<br>
|
||
<br>
|
||
<a href="https://getstream.io/chat/sdk/ios/?utm_source=Github&utm_medium=Github_Repo_Content_Ad&utm_content=Developer&utm_campaign=Github_Jan2022_iOSChatSDK&utm_term=Sindresorhus#gh-light-mode-only">
|
||
<div>
|
||
<img src="https://sindresorhus.com/assets/thanks/stream-logo.svg" width="220" alt="Stream">
|
||
</div>
|
||
<br>
|
||
<div>
|
||
<b>Build Scalable Feeds & Chat Applications with Powerful APIs and Front End Components</b>
|
||
</div>
|
||
</a>
|
||
<a href="https://getstream.io/chat/sdk/ios/?utm_source=Github&utm_medium=Github_Repo_Content_Ad&utm_content=Developer&utm_campaign=Github_Jan2022_iOSChatSDK&utm_term=Sindresorhus#gh-dark-mode-only">
|
||
<div>
|
||
<img src="https://sindresorhus.com/assets/thanks/stream-logo-dark.svg" width="220" alt="Stream">
|
||
</div>
|
||
<br>
|
||
<div>
|
||
<b>Build Scalable Feeds & Chat Applications with Powerful APIs and Front End Components</b>
|
||
</div>
|
||
</a>
|
||
<br>
|
||
<br>
|
||
</p>
|
||
<hr>
|
||
<br>
|
||
<br>
|
||
<br>
|
||
<br>
|
||
<br>
|
||
<a href="https://awesome.re">
|
||
<img src="https://awesome.re/badge-flat2.svg" alt="Awesome">
|
||
</a>
|
||
<p>
|
||
<sub>Just type <a href="https://node.cool"><code>node.cool</code></a> to go here. Follow me on <a href="https://twitter.com/sindresorhus">Twitter</a>.</sub>
|
||
</p>
|
||
<br>
|
||
<p>
|
||
<a href="https://en.wikipedia.org/wiki/Node.js">Node.js</a> is an open-source, cross-platform, JavaScript runtime for writing servers and command-line tools.
|
||
</p>
|
||
<br>
|
||
</div>
|
||
|
||
## 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)
|
||
- [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)
|
||
- [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/feross/webtorrent) - Streaming torrent client for Node.js and the browser.
|
||
- [peerflix](https://github.com/mafintosh/peerflix) - Streaming torrent client.
|
||
- [dat](https://github.com/datproject/dat-node) - Real-time replication and versioning for data sets.
|
||
- [ipfs](https://github.com/ipfs/js-ipfs) - 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/devongovett/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.
|
||
- [Kadence](https://gitlab.com/deadcanaries/kadence) - Kademlia distributed hash table.
|
||
- [seedshot](https://github.com/twobucks/seedshot) - Temporary P2P screenshot sharing from your browser.
|
||
- [js-git](https://github.com/creationix/js-git) - JavaScript implementation of Git.
|
||
- [skale](https://github.com/skale-me/skale-engine) - High performance distributed data processing engine.
|
||
- [xlsx](https://github.com/sheetjs/js-xlsx) - 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.
|
||
- [emoj](https://github.com/sindresorhus/emoj) - Find relevant emoji from text on the command-line.
|
||
- [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.
|
||
- [Standard](https://github.com/feross/standard) - JavaScript Standard Style — One style to rule them all.
|
||
- [ESLint](https://github.com/eslint/eslint) - The pluggable linting utility for JavaScript.
|
||
- [dev-time](https://github.com/samverschueren/dev-time-cli) - Get the current local time of a GitHub user.
|
||
- [David](https://github.com/alanshaw/david) - Tells you when your package npm dependencies are out of date.
|
||
- [http-server](https://github.com/indexzero/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.
|
||
- [wifi-password](https://github.com/kevva/wifi-password-cli) - Get the current wifi password.
|
||
- [wallpaper](https://github.com/sindresorhus/wallpaper) - Change the desktop wallpaper.
|
||
- [brightness](https://github.com/kevva/brightness-cli) - Change the screen brightness.
|
||
- [torrent](https://github.com/maxogden/torrent) - Download torrents.
|
||
- [kill-tabs](https://github.com/sindresorhus/kill-tabs) - Kill all Chrome tabs to improve performance, decrease battery usage, and save memory.
|
||
- [alex](https://github.com/wooorm/alex) - Catch insensitive, inconsiderate writing.
|
||
- [pen](https://github.com/noraesae/pen) - Live Markdown preview in the browser from your favorite editor.
|
||
- [subdownloader](https://github.com/beatfreaker/subdownloader) - Subtitle downloader for movies and TV series.
|
||
- [dark-mode](https://github.com/sindresorhus/dark-mode) - Toggle the macOS Dark Mode.
|
||
- [iponmap](https://github.com/nogizhopaboroda/iponmap) - IP location finder.
|
||
- [Jsome](https://github.com/Javascipt/Jsome) - Pretty prints JSON with configurable colors and indentation.
|
||
- [itunes-remote](https://github.com/mischah/itunes-remote) - Interactively control iTunes.
|
||
- [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.
|
||
- [Cash](https://github.com/dthree/cash) - Cross-platform Unix shell commands in pure JavaScript.
|
||
- [trymodule](https://github.com/VictorBjelkholm/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.
|
||
- [lessmd](https://github.com/linuxenko/lessmd) - Markdown in the terminal.
|
||
- [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/mjswensen/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/klauscfhq/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/facebook/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.
|
||
- [Folktale](https://github.com/origamitower/folktale) - Suite of libraries for generic functional programming in JavaScript that allows you to write elegant, modular applications with fewer bugs, and more reuse.
|
||
- [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.
|
||
- [Bacon.js](https://github.com/baconjs/bacon.js) - Functional reactive programming.
|
||
- [RxJS](https://github.com/reactivex/rxjs) - Functional reactive library for transforming, composing, and querying various kinds of data.
|
||
- [Lazy.js](https://github.com/dtao/lazy.js) - Utility library similar to lodash/Underscore but with lazy evaluation, which can translate to superior performance in many cases.
|
||
- [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.
|
||
- [gh-got](https://github.com/sindresorhus/gh-got) - Convenience wrapper for `got` to interact with the GitHub API.
|
||
- [axios](https://github.com/mzabriskie/axios) - Promise based HTTP client (works in the browser too).
|
||
- [wreck](https://github.com/hapijs/wreck) - HTTP Client Utilities.
|
||
- [download](https://github.com/kevva/download) - Download and extract files effortlessly.
|
||
- [http-proxy](https://github.com/nodejitsu/node-http-proxy) - HTTP proxy.
|
||
- [superagent](https://github.com/visionmedia/superagent) - HTTP request library.
|
||
- [node-fetch](https://github.com/bitinn/node-fetch) - `window.fetch` for Node.js.
|
||
- [flashheart](https://github.com/bbc/flashheart) - REST client.
|
||
- [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.
|
||
- [undici](https://github.com/nodejs/undici) - High performance HTTP client written from scratch with zero dependencies.
|
||
|
||
### Debugging / Profiling
|
||
|
||
- [ndb](https://github.com/GoogleChromeLabs/ndb) - Improved debugging experience, enabled by Chrome DevTools.
|
||
- [ironNode](https://github.com/s-a/iron-node) - Node.js debugger supporting ES2015 out of the box.
|
||
- [node-inspector](https://github.com/node-inspector/node-inspector) - Debugger based on Blink Developer Tools.
|
||
- [debug](https://github.com/visionmedia/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.
|
||
- [signale](https://github.com/klauscfhq/signale) - Console logger.
|
||
- [consola](https://github.com/nuxt/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.
|
||
- [listr](https://github.com/samverschueren/listr) - 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.
|
||
- [first-run](https://github.com/sindresorhus/first-run) - Check if it's the first time the process is run.
|
||
- [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.
|
||
- [update-notifier](https://github.com/yeoman/update-notifier) - Update notifications for your CLI app.
|
||
- [ascii-charts](https://github.com/jstrace/chart) - ASCII bar chart in the terminal.
|
||
- [progress](https://github.com/tj/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.
|
||
- [columnify](https://github.com/timoxley/columnify) - Create text-based columns suitable for console output. Supports cell wrapping.
|
||
- [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.
|
||
- [loud-rejection](https://github.com/sindresorhus/loud-rejection) - Make unhandled promise rejections fail loudly instead of the default silent fail.
|
||
- [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.
|
||
- [term-size](https://github.com/sindresorhus/term-size) - Reliably get the terminal window size.
|
||
- [Cliffy](https://github.com/drew-y/cliffy) - Framework for interactive CLIs.
|
||
|
||
### 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.
|
||
- [Start](https://github.com/deepsweet/start) - Functional task runner with shareable presets.
|
||
- [ygor](https://github.com/shannonmoeller/ygor) - Promising task runner for when `npm run` isn't enough and everything else is too much.
|
||
- [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/zeit/pkg) - Package your Node.js project into an executable.
|
||
|
||
### Hardware
|
||
|
||
- [johnny-five](https://github.com/rwaldron/johnny-five) - Firmata based Arduino Framework.
|
||
- [serialport](https://github.com/voodootikigod/node-serialport) - Access serial ports for reading and writing.
|
||
- [usb](https://github.com/nonolith/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.
|
||
|
||
### 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/wycats/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
|
||
|
||
- [Hapi](https://github.com/hapijs/hapi) - Framework for building applications and services.
|
||
- [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/strongloop/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.
|
||
- [Next.js](https://github.com/zeit/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.
|
||
- [seneca](https://github.com/senecajs/seneca) - Toolkit for writing microservices.
|
||
- [AdonisJs](http://adonisjs.com) - A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.
|
||
- [Hemera](https://github.com/hemerajs/hemera) - Write reliable and fault-tolerant microservices with [NATS](https://nats.io).
|
||
- [Micro](https://github.com/zeit/micro) - Minimalistic microservice framework with an async approach.
|
||
- [Moleculer](https://moleculer.services) - Fast & powerful microservices framework.
|
||
- [Fastify](https://github.com/fastify/fastify) - Fast and low overhead web framework.
|
||
- [Nest](https://github.com/nestjs/nest) - Angular-inspired framework for building efficient and scalable server-side apps.
|
||
- [TypeGraphQL](https://github.com/19majkel94/type-graphql) - Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators.
|
||
- [Tinyhttp](https://github.com/talentlessguy/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.
|
||
|
||
### Documentation
|
||
|
||
- [documentation.js](https://github.com/documentationjs/documentation) - API documentation generator with support for ES2015+ and flow annotation.
|
||
- [ESDoc](https://github.com/esdoc/esdoc) - Documentation generator targeting ES2015, attaching test code and measuring documentation coverage.
|
||
- [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/jsdoc3/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.
|
||
- [cpy](https://github.com/sindresorhus/cpy) - Copy files.
|
||
- [rimraf](https://github.com/isaacs/rimraf) - Recursively delete files like `rm -rf`.
|
||
- [make-dir](https://github.com/sindresorhus/make-dir) - Recursively create directories like `mkdir -p`.
|
||
- [graceful-fs](https://github.com/isaacs/node-graceful-fs) - Drop-in replacement for the `fs` module with various improvements.
|
||
- [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/IndigoUnited/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.
|
||
- [lnfs](https://github.com/kevva/lnfs) - Force create symlinks like `ln -fs`.
|
||
- [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
|
||
- [Bluebird](https://github.com/petkaantonov/bluebird) - Promise library with focus on innovative features and performance.
|
||
- [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
|
||
- [zen-observable](https://github.com/zenparsing/zen-observable) - Implementation of Observables.
|
||
- [RxJS](https://github.com/ReactiveX/RxJS) - Reactive programming.
|
||
- [observable-to-promise](https://github.com/sindresorhus/awesome-observables) - 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.
|
||
- Callbacks
|
||
- [each-async](https://github.com/sindresorhus/each-async) - Async concurrent iterator like forEach.
|
||
- [async](https://github.com/caolan/async) - Provides straight-forward, powerful functions for working with asynchronicity.
|
||
- Channels
|
||
- [js-csp](https://github.com/ubolonton/js-csp) - Communicating sequential processes for JavaScript (like Clojurescript core.async, or Go).
|
||
|
||
### Streams
|
||
|
||
- [through2](https://github.com/rvagg/through2) - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise.
|
||
- [from2](https://github.com/hughsk/from2) - Convenience wrapper for ReadableStream, inspired by `through2`.
|
||
- [get-stream](https://github.com/sindresorhus/get-stream) - Get a stream as a string or buffer.
|
||
- [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.
|
||
- [stream-combiner2](https://github.com/substack/stream-combiner2) - Turn a pipeline 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/uWebSockets/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/mcollina/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 image type of a Buffer/Uint8Array.
|
||
- [gm](https://github.com/aheckmann/gm) - GraphicsMagick and ImageMagick wrapper.
|
||
- [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.
|
||
- [probe-image-size](https://github.com/nodeca/probe-image-size) - Get the size of most image formats without a full download.
|
||
- [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.
|
||
- [execall](https://github.com/sindresorhus/execall) - Find multiple RegExp matches in a string.
|
||
- [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.
|
||
- [Moment.js](http://momentjs.com) - Parse, validate, manipulate, and display dates.
|
||
- [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: http://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/hapijs/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/Atinux/schema-inspector) - JSON API sanitization and validation.
|
||
- [ajv](https://github.com/epoberezkin/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).
|
||
|
||
### Parsing
|
||
|
||
- [remark](https://github.com/wooorm/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.
|
||
- [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.
|
||
- [PostCSS](https://github.com/postcss/postcss) - CSS parser / stringifier.
|
||
- [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/lapwinglabs/x-ray) - Web scraping utility.
|
||
- [nearley](https://github.com/Hardmath123/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/seegno/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/rauchg/ms.js) - 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).
|
||
- [decompress](https://github.com/kevva/decompress) - Decompression module with support for `tar`, `tar.gz` and `zip` files out of the box.
|
||
|
||
### 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.
|
||
- [Massive](https://github.com/robconery/massive-js) - PostgreSQL data access tool.
|
||
- [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.
|
||
- Query builder
|
||
- [Knex](https://github.com/tgriesser/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/lukechilds/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/bcoe/nyc) - Code coverage tool built on istanbul that works with subprocesses.
|
||
- [tap](https://github.com/isaacs/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/vdemedes/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/pgte/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/Codeception/CodeceptJS) - End-to-end testing.
|
||
- [Puppeteer](https://github.com/GoogleChrome/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.
|
||
- [matcha](https://github.com/logicalparadox/matcha) - Simplistic approach to benchmarking.
|
||
|
||
### Minifiers
|
||
|
||
- [babili](https://github.com/babel/babili) - ES2015+ aware minifier based on the Babel toolchain.
|
||
- [UglifyJS2](https://github.com/mishoo/UglifyJS2) - JavaScript minifier.
|
||
- [clean-css](https://github.com/jakubpawlowicz/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/andris9/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/niftylettuce/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/rschmukler/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/taskrabbit/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.
|
||
|
||
### 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.
|
||
|
||
### Natural language processing
|
||
|
||
- [retext](https://github.com/wooorm/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/ternjs/acorn) - Tiny, fast JavaScript parser.
|
||
- [babel-parser](https://github.com/babel/babel/tree/master/packages/babel-parser) - JavaScript parser used in Babel.
|
||
- [cherow](https://github.com/cherow/cherow) - JavaScript parser with focus on performance and stability.
|
||
|
||
### Static site generators
|
||
|
||
- [Wintersmith](https://github.com/jnordberg/wintersmith) - Flexible, minimalistic, multi-platform static site generator.
|
||
- [Assemble](https://github.com/assemble/assemble/) - Static site generator for Node.js, Grunt.js, and Yeoman.
|
||
- [DocPad](https://github.com/docpad/docpad) - Static site generator with dynamic abilities and huge plugin ecosystem.
|
||
- [Phenomic](https://github.com/phenomic/phenomic) - Modern static website generator based on the React and Webpack ecosystem.
|
||
- [docsify](https://github.com/QingWei-Li/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.
|
||
- [Tipe](https://github.com/tipeio/tipe) - Developer-first content management system with GraphQL and REST API from a schema file.
|
||
- [Factor](https://github.com/fiction-com/factor) - Vue.js dashboard framework and headless CMS.
|
||
- [AdminBro](https://github.com/SoftwareBrothers/admin-bro) - Auto-generated admin panel with CRUD for all your resources.
|
||
|
||
### 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/dcodeIO/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.
|
||
- [Electron](https://github.com/atom/electron) - Build cross platform desktop apps with web technologies. *(You might like [awesome-electron](https://github.com/sindresorhus/awesome-electron))*
|
||
- [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.
|
||
- [import-fresh](https://github.com/sindresorhus/import-fresh) - Import a module while bypassing the cache.
|
||
- [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.
|
||
- [import-lazy](https://github.com/sindresorhus/import-lazy) - Import a module lazily.
|
||
- [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.
|
||
- [ow](https://github.com/sindresorhus/ow) - Function argument validation for humans.
|
||
- [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.
|
||
- [remote-git-tags](https://github.com/sindresorhus/remote-git-tags) - Get tags from a remote git repo.
|
||
- [semver](https://github.com/npm/node-semver) - Semantic version parser.
|
||
- [Faker.js](https://github.com/Marak/Faker.js) - Generate massive amounts of fake data.
|
||
- [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.
|
||
- [resolve-from](https://github.com/sindresorhus/resolve-from) - Resolve the path of a module like `require.resolve()` but from a given path.
|
||
- [simplecrawler](https://github.com/cgiffard/node-simplecrawler) - Event driven web crawler.
|
||
- [jsdom](https://github.com/tmpvar/jsdom) - JavaScript implementation of HTML and the DOM.
|
||
- [hypernova](https://github.com/airbnb/hypernova) - Server-side rendering your JavaScript views.
|
||
- [@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.
|
||
- [emittery](https://github.com/sindresorhus/emittery) - Simple and modern async event emitter.
|
||
- [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.
|
||
|
||
## Resources
|
||
|
||
### Tutorials
|
||
|
||
- [Node.js Best Practices](https://github.com/i0natan/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.
|
||
- [stream-handbook](https://github.com/substack/stream-handbook) - How to write Node.js programs with streams.
|
||
- [module-best-practices](https://github.com/mattdesl/module-best-practices) - Some good practices when writing new npm modules.
|
||
- [The Node Way](http://thenodeway.io) - 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/portable-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.
|
||
- [npmcompare.com](https://npmcompare.com) - Compare and discover npm packages.
|
||
|
||
### Articles
|
||
|
||
- [Error Handling in Node.js](https://www.joyent.com/node-js/production/design/errors)
|
||
- [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/)
|
||
- [Art of README](https://github.com/noffle/art-of-readme) - Learn the art of writing quality READMEs.
|
||
- [Using Express to Quickly Build a GraphQL Server](https://snipcart.com/blog/graphql-nodejs-express-tutorial)
|
||
|
||
### Newsletters
|
||
|
||
- [Node Weekly](http://nodeweekly.com) - Weekly e-mail round-up of Node.js news and articles.
|
||
- [Node Module Of The Week!](https://nmotw.in) - Weekly dose of hand picked node modules.
|
||
|
||
### 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)
|
||
- [Nodetuts](http://nodetuts.com) - Series of talks, including TCP & HTTP API servers, async programming, and more.
|
||
- [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](http://www.amazon.com/Node-js-Practice-Alex-R-Young/dp/1617290939)
|
||
- [Mastering Node](http://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](http://www.amazon.com/Professional-Node-js-Building-Javascript-Scalable-ebook/dp/B009L7QETY/)
|
||
- [Practical Node.js: Building Real-World Scalable Web Apps](http://practicalnodebook.com)
|
||
- [Mixu's Node book](http://book.mixu.net/node/)
|
||
- [Pro Express.js](http://proexpressjs.com)
|
||
- [Secure Your Node.js Web Application](http://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](http://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.codeschool.com/courses/real-time-web-with-node-js)
|
||
- [Learn and Understand Node.js](https://www.udemy.com/understand-nodejs)
|
||
|
||
### Cheatsheets
|
||
|
||
- [Express.js](https://github.com/azat-co/cheatsheets/blob/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/npm-hub/kbbbjimdjbjclaebffknlabpogocablj) - Chrome extension to display npm dependencies at the bottom of a repo's readme.
|
||
- [RunKit](http://blog.tonicdev.com/2015/09/30/embedded-tonic.html) - 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/s/node-http-server-node) - Online IDE and prototyping.
|
||
|
||
### Community
|
||
|
||
- [Gitter](https://gitter.im/nodejs/node)
|
||
- [`#node.js` on Freenode](http://webchat.freenode.net/?channels=node.js)
|
||
- [Stack Overflow](http://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://discordapp.com/invite/96WGtJt)
|
||
|
||
### Miscellaneous
|
||
|
||
- [nodebots](http://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/module-requests) - 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.
|