Chinese, Simplified
        
Delightful Node.js packages and resources https://node.cool
Contents
- 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
 - Natural language processing
 - Process management
 - Automation
 - AST
 - Static site generators
 - Content management systems
 - Forum
 - Blogging
 - Weird
 - Serialization
 - Miscellaneous
 
 - Resources
 
Packages
Mad science
- webtorrent - Streaming torrent client for Node.js and the browser.
 - peerflix - Streaming torrent client.
 - dat - Real-time replication and versioning for data sets.
 - 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.
 - Cytoscape.js - Graph theory (a.k.a. network) modeling and analysis.
 - Kadence - Kademlia distributed hash table.
 - seedshot - Temporary P2P screenshot sharing from your browser.
 - js-git - JavaScript implementation of Git.
 - skale - High performance distributed data processing engine.
 - xlsx - Pure JS Excel spreadsheet reader and writer.
 - isomorphic-git - Pure JavaScript implementation of Git.
 
Command-line apps
- 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.
 - emoj - Find relevant emoji from text on the command-line.
 - 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.
 - Standard - JavaScript Standard Style — One style to rule them all.
 - ESLint - The pluggable linting utility for JavaScript.
 - dev-time - Get the current local time of a GitHub user.
 - 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.
 - wifi-password - Get the current wifi password.
 - wallpaper - Change the desktop wallpaper.
 - brightness - Change the screen brightness.
 - torrent - Download torrents.
 - kill-tabs - Kill all Chrome tabs to improve performance, decrease battery usage, and save memory.
 - alex - Catch insensitive, inconsiderate writing.
 - pen - Live Markdown preview in the browser from your favorite editor.
 - subdownloader - Subtitle downloader for movies and TV series.
 - dark-mode - Toggle the macOS Dark Mode.
 - iponmap - IP location finder.
 - Jsome - Pretty prints JSON with configurable colors and indentation.
 - itunes-remote - Interactively control iTunes.
 - mobicon - Mobile app icon generator.
 - mobisplash - Mobile app splash screen generator.
 - diff2html-cli - Pretty git diff to HTML generator.
 - Cash - Cross-platform Unix shell commands in pure JavaScript.
 - 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.
 - lessmd - Markdown in the terminal.
 - 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.
 
Functional programming
- 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.
 - 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 - 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 - Functional reactive programming.
 - RxJS - Functional reactive library for transforming, composing, and querying various kinds of data.
 - Lazy.js - Utility library similar to lodash/Underscore but with lazy evaluation, which can translate to superior performance in many cases.
 - Kefir.js - Reactive library with focus on high performance and low memory usage.
 
HTTP
- got - Nicer interface to the built-in 
httpmodule. - gh-got - Convenience wrapper for 
gotto interact with the GitHub API. - axios - Promise based HTTP client (works in the browser too).
 - request - Simplified HTTP request client.
 - wreck - HTTP Client Utilities.
 - download - Download and extract files effortlessly.
 - http-proxy - HTTP proxy.
 - superagent - HTTP request library.
 - node-fetch - 
window.fetchfor Node.js. - flashheart - REST client.
 - 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.
 
Debugging / Profiling
- ndb - Improved debugging experience, enabled by Chrome DevTools.
 - ironNode - Node.js debugger supporting ES2015 out of the box.
 - node-inspector - Debugger based on Blink Developer Tools.
 - 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.
 
Logging
- 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.
 - signale - Hackable console logger with beautiful output.
 
Command-line utilities
- 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.
 - listr - 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.
 - first-run - Check if it's the first time the process is run.
 - 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.
 - update-notifier - Update notifications for your CLI app.
 - 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.
 - columnify - Create text-based columns suitable for console output. Supports cell wrapping.
 - 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.
 - loud-rejection - Make unhandled promise rejections fail loudly instead of the default silent fail.
 - 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.
 - term-size - Reliably get the terminal window size.
 - Cliffy - Framework for interactive CLIs.
 
Build tools
- 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.
 - Start - Functional task runner with shareable presets.
 - ygor - Promising task runner for when 
npm runisn't enough and everything else is too much. - 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.
 
Hardware
- 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.
 
Templating
- marko - HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags.
 - nunjucks - Templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
 - handlebars.js - Superset of Mustache templates which adds powerful features like helpers and more advanced blocks.
 - EJS - Simple unopinionated templating language.
 - Pug - High-performance template engine heavily influenced by Haml.
 
Web frameworks
- Hapi - Framework for building applications and services.
 - 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.
 - MERN - Easily build production-ready universal apps with MongoDB, Express, React, and webpack.
 - Next.js - Minimalistic framework for server-rendered universal JavaScript web apps.
 - Nuxt.js - Minimalistic framework for server-rendered Vue.js apps.
 - seneca - Toolkit for writing microservices.
 - AdonisJs - A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.
 - Hemera - Write reliable and fault-tolerant microservices with NATS.
 - Micro - Minimalistic microservice framework with an async approach.
 - Moleculer - Fast & powerful microservices framework.
 - Fastify - Fast and low overhead web framework.
 - Nest - Angular-inspired framework for building efficient and scalable server-side apps.
 - Zeronode - Minimal building block for reliable and fault-tolerant microservices.
 - TypeGraphQL - Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators.
 
Documentation
- documentation.js - API documentation generator with support for ES2015+ and flow annotation.
 - ESDoc - Documentation generator targeting ES2015, attaching test code and measuring documentation coverage.
 - 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.
 
Filesystem
- del - Delete files/folders using globs.
 - globby - Glob files with support for multiple patterns.
 - cpy - Copy files.
 - rimraf - Recursively delete files like 
rm -rf. - make-dir - Recursively create directories like 
mkdir -p. - graceful-fs - Drop-in replacement for the 
fsmodule with various improvements. - 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.
 - lnfs - Force create symlinks like 
ln -fs. - 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. - pkg-dir - 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.
 
Control flow
- Promises
- Bluebird - Promise library with focus on innovative features and performance.
 - pify - Promisify a callback-style function.
 - delay - Delay a promise a specified amount of time.
 - promise-memoize - Memoize promise-returning functions, with expire and prefetch.
 - valvelet - Limit the execution rate of a promise-returning function.
 - p-map - Map over promises concurrently.
 - More…
 
 - Observables
- zen-observable - Implementation of 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.
 
 - Callbacks
- each-async - Async concurrent iterator like forEach.
 - async - Provides straight-forward, powerful functions for working with asynchronicity.
 
 - Channels
- js-csp - Communicating sequential processes for JavaScript (like Clojurescript core.async, or Go).
 
 
Streams
- through2 - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise.
 - from2 - Convenience wrapper for ReadableStream, inspired by 
through2. - get-stream - Get a stream as a string or buffer.
 - 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.
 - stream-combiner2 - Turn a pipeline into a single stream.
 - readable-stream - Mirror of Streams2 and Streams3 implementations in core.
 - through2-concurrent - Transform object streams concurrently.
 
Real-time
- µWebSockets - Highly scalable WebSocket server & client library.
 - Socket.io - Enables real-time bidirectional event-based communication.
 - Faye - Real-time client-server message bus, based on Bayeux protocol.
 - SocketCluster - Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
 - Primus - An abstraction layer for real-time frameworks to prevent module lock-in.
 - deepstream.io - Scalable real-time microservice framework.
 - Kalm - Low-level socket router and middleware framework.
 - MQTT.js - Client for MQTT - Pub-sub based messaging protocol for use on top of TCP/IP.
 - rpc-websockets - JSON-RPC 2.0 implementation over WebSockets.
 - Aedes - Barebone MQTT server that can run on any stream server.
 
Image
- sharp - The fastest module for resizing JPEG, PNG, WebP and TIFF images.
 - image-type - Detect the image type of a Buffer/Uint8Array.
 - gm - GraphicsMagick and ImageMagick wrapper.
 - lwip - Lightweight image processor which does not require ImageMagick.
 - pica - High quality & fast resize (lanczos3) in pure JS. Alternative to canvas drawImage(), when no pixelation allowed.
 - jimp - Image processing in pure JavaScript.
 - probe-image-size - Get the size of most image formats without a full download.
 - qrcode - QR code and bar code generator.
 
Text
- iconv-lite - Convert character encodings.
 - string-length - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes.
 - camelcase - Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar.
 - escape-string-regexp - Escape RegExp special characters.
 - execall - Find multiple RegExp matches in a string.
 - splice-string - Remove or replace part of a string like 
Array#splice. - indent-string - Indent each line in a string.
 - strip-indent - Strip leading whitespace from every line in a string.
 - detect-indent - Detect the indentation of code.
 - he - HTML entity encoder/decoder.
 - i18n-node - Simple translation module with dynamic JSON storage.
 - babelfish - i18n with very easy syntax for plurals.
 - matcher - Simple wildcard matching.
 - unhomoglyph - Normalize visually similar unicode characters.
 - i18next - Internationalization framework.
 
Number
- random-int - Generate a random integer.
 - random-float - Generate a random float.
 - unique-random - Generate random numbers that are consecutively unique.
 - round-to - Round a number to a specific number of decimal places: 
1.234→1.2. 
Math
- ndarray - Multidimensional arrays.
 - mathjs - An extensive math library.
 - math-clamp - Clamp a number.
 - algebra - Algebraic structures.
 - multimath - Core to create fast image math in WebAssembly and JS.
 
Date
- Luxon - Library for working with dates and times.
 - date-fns - Modern date utility.
 - Moment.js - Parse, validate, manipulate, and display dates.
 - Day.js - Immutable date library alternative to Moment.js.
 - dateformat - Date formatting.
 - tz-format - Format a date with timezone: 
2015-11-30T10:40:35+01:00. - cctz - Fast parsing, formatting, and timezone conversation for dates.
 
URL
- normalize-url - Normalize a URL.
 - humanize-url - Humanize a URL: http://sindresorhus.com → sindresorhus.com.
 - url-unshort - Expand shortened URLs.
 - speakingurl - Generate a slug from a string with transliteration.
 - linkify-it - Link patterns detector with full unicode support.
 - url-pattern - Easier than regex string matching patterns for URLs and other strings.
 - embedza - Create HTML snippets/embeds from URLs using info from oEmbed, Open Graph, meta tags.
 
Data validation
- joi - Object schema description language and validator for JavaScript objects.
 - is-my-json-valid - JSON Schema validator that uses code generation to be extremely fast.
 - property-validator - Easy property validation for Express.
 - schema-inspector - JSON API sanitization and validation.
 - ajv - The fastest JSON Schema validator. Supports v5, v6 and v7 proposals.
 
Parsing
- remark - Markdown processor powered by plugins.
 - markdown-it - Markdown parser with 100% CommonMark support, extensions and syntax plugins.
 - parse5 - Fast full-featured spec compliant HTML parser.
 - strip-json-comments - Strip comments from JSON.
 - strip-css-comments - Strip comments from CSS.
 - parse-json - Parse JSON with more helpful errors.
 - URI.js - URL mutation.
 - PostCSS - CSS parser / stringifier.
 - JSONStream - Streaming JSON.parse and stringify.
 - neat-csv - Fast CSV parser. Callback interface for the above.
 - csv-parser - Streaming CSV parser that aims to be faster than everyone else.
 - PEG.js - Simple parser generator that produces fast parsers with excellent error reporting.
 - x-ray - Web scraping utility.
 - nearley - Simple, fast, powerful parsing for JavaScript.
 - binary-extract - Extract a value from a buffer of JSON without parsing the whole thing.
 - Stylecow - Parse, manipulate and convert modern CSS to make it compatible with all browsers. Extensible with plugins.
 - js-yaml - Very fast YAML parser.
 - xml2js - XML to JavaScript object converter.
 - Jison - Friendly JavaScript parser generator. It shares genes with Bison, Yacc and family.
 - google-libphonenumber - Parse, format, store and validate phone numbers.
 - ref - Read/write structured binary data in Buffers.
 - xlsx-populate - Read/write Excel XLSX.
 - Chevrotain - Very fast and feature rich parser building toolkit for JavaScript.
 - fast-xml-parser - Validate and parse XML.
 
Humanize
- pretty-bytes - Convert bytes to a human readable string: 
1337→1.34 kB. - pretty-ms - Convert milliseconds to a human readable string: 
1337000000→15d 11h 23m 20s. - ms - Tiny millisecond conversion utility.
 - pretty-error - Errors with less clutter.
 - read-art - Extract readable content from any page.
 
Compression
- yazl - Zip.
 - yauzl - Unzip.
 - Archiver - Streaming interface for archive generation, supporting ZIP and TAR.
 - pako - High speed zlib port to pure js (deflate, inflate, gzip).
 - tar-stream - Streaming tar parser and generator. Also see tar-fs.
 - decompress - Decompression module with support for 
tar,tar.gzandzipfiles out of the box. 
Network
- get-port - Get an available port.
 - ipify - Get your public IP address.
 - getmac - Get the computer MAC address.
 - DHCP - DHCP client and server.
 - netcat - Netcat port in pure JS.
 
Database
- Drivers
- PostgreSQL - PostgreSQL client. Pure JavaScript and native libpq bindings.
 - Redis - Redis client.
 - LevelUP - LevelDB.
 - MySQL - MySQL client.
 - couchdb-nano - CouchDB client.
 - Aerospike - Aerospike client.
 - Couchbase - Couchbase client.
 - MongoDB - MongoDB driver.
 
 - ODM / ORM
- Sequelize - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL.
 - Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
 - Massive - PostgreSQL data access tool.
 - Mongoose - Elegant MongoDB object modeling.
 - Waterline - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
 - OpenRecord - ORM for PostgreSQL, MySQL, SQLite3 and RESTful datastores. Similar to ActiveRecord.
 - pg-promise - PostgreSQL framework for native SQL using promises.
 - slonik - PostgreSQL client with strict types, detailed logging and assertions.
 - Objection.js - Lightweight ORM built on the SQL query builder Knex.
 - TypeORM - ORM for PostgreSQL, MariaDB, MySQL, SQLite, and more.
 
 - Query builder
- Knex - Query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.
 
 - Other
- NeDB - Embedded persistent database written in JavaScript.
 - Lowdb - Small JavaScript database powered by Lodash.
 - Keyv - Simple key-value storage with support for multiple backends.
 - Finale - RESTful endpoint generator for your Sequelize models.
 - database-js - Wrapper for multiple databases with a JDBC-like connection.
 - Mongo Seeding - Populate MongoDB databases with JavaScript and JSON files.
 
 
Testing
- AVA - Futuristic test runner.
 - Mocha - Feature-rich test framework making asynchronous testing simple and fun.
 - nyc - Code coverage tool built on istanbul that works with subprocesses.
 - tap - TAP test framework.
 - tape - TAP-producing test harness.
 - power-assert - Provides descriptive assertion messages through the standard assert interface.
 - Mochify - TDD with Browserify, Mocha, PhantomJS and WebDriver.
 - trevor - Run tests against multiple versions of Node.js without switching versions manually or pushing to Travis CI.
 - loadtest - Run load tests for your web application, with an API for automation.
 - Sinon.JS - Test spies, stubs and mocks.
 - navit - PhantomJS / SlimerJS wrapper to simplify browser test scripting.
 - Nock - HTTP mocking and expectations.
 - intern - Code testing stack.
 - toxy - Hackable HTTP proxy to simulate failure scenarios and network conditions.
 - hook-std - Hook and modify stdout/stderr.
 - testen - Run tests for multiple versions of Node.js locally with NVM.
 - Nightwatch - Automated UI testing framework based on Selenium WebDriver.
 - WebdriverIO - Automated testing based on the WebDriver protocol.
 - Jest - Painless JavaScript testing.
 - TestCafe - Automated browser testing.
 - abstruse - Continuous Integration server.
 - CodeceptJS - End-to-end testing.
 
Security
- upash - Unified API for all password hashing algorithms.
 - themis - Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on.
 - GuardRails - GitHub app that provides security feedback in pull requests.
 - rate-limiter-flexible - Brute-force and DDoS attack protection.
 - crypto-hash - Async non-blocking hashing.
 
Benchmarking
- Benchmark.js - Benchmarking library that supports high-resolution timers and returns statistically significant results.
 - matcha - Simplistic approach to benchmarking.
 
Minifiers
- babili - ES2015+ aware minifier based on the Babel toolchain.
 - UglifyJS2 - JavaScript minifier.
 - clean-css - CSS minifier.
 - minimize - HTML minifier.
 - imagemin - Image minifier.
 
Authentication
- Passport - Simple, unobtrusive authentication.
 - Grant - OAuth middleware for Express, Koa, and Hapi.
 - CloudRail - Unified API for social authentication (Facebook, Twitter, Slack, Instagram, …).
 
Authorization
- CASL - Isomorphic authorization for UI and API.
 - node-casbin - Authorization library that supports access control models like ACL, RBAC and ABAC.
 
- Nodemailer - The fastest way to handle email.
 - emailjs - Send text/HTML emails with attachments to any SMTP server.
 - email-templates - Create, preview, and send custom email templates.
 
Job queues
- bull - Persistent job and message queue.
 - agenda - MongoDB-backed job scheduling.
 - idoit - Redis-backed job queue engine with advanced job control.
 - node-resque - Redis-backed job queue.
 - rsmq - Redis-backed message queue.
 - bee-queue - High-performance Redis-backed job queue.
 - RedisSMQ - Simple high-performance Redis message queue with real-time monitoring.
 - sqs-consumer - Build Amazon Simple Queue Service (SQS) based apps without the boilerplate.
 - better-queue - Simple and efficient job queue when you cannot use Redis.
 
Node.js management
- n - Node.js version management.
 - nave - Virtual Environments for Node.js.
 - nodeenv - Node.js virtual environment compatible to Python's virtualenv.
 - nvm for Windows - Version management for Windows.
 - nodenv - Version manager that is similar to Ruby's rbenv. It supports auto version switching.
 
Natural language processing
- retext - An extensible natural language system.
 - franc - Detect the language of text.
 - leven - Measure the difference between two strings using the Levenshtein distance algorithm.
 - natural - Natural language facility.
 - nlp.js - Building bots, with entity extraction, sentiment analysis, automatic language identify, and more.
 
Process management
- PM2 - Advanced Process Manager.
 - nodemon - Monitor for changes in your app and automatically restart the server.
 - node-mac - Run scripts as a native Mac daemon and log to the console app.
 - node-linux - Run scripts as native system service and log to syslog.
 - node-windows - Run scripts as a native Windows service and log to the Event viewer.
 - supervisor - Restart scripts when they crash or restart when a 
*.jsfile changes. - Phusion Passenger - Friendly process manager that integrates directly into Nginx.
 
Automation
- robotjs - Desktop Automation: control the mouse, keyboard and read the screen.
 
AST
- Acorn - Tiny, fast JavaScript parser.
 - babel-parser - JavaScript parser used in Babel.
 - cherow - JavaScript parser with focus on performance and stability.
 
Static site generators
- Wintersmith - Flexible, minimalistic, multi-platform static site generator.
 - Assemble - Static site generator for Node.js, Grunt.js, and Yeoman.
 - DocPad - Static site generator with dynamic abilities and huge plugin ecosystem.
 - Phenomic - Modern static website generator based on the React and Webpack ecosystem.
 - docsify - Markdown documentation site generator with no statically built HTML files.
 
Content management systems
- KeystoneJS - CMS and web application platform built on Express and MongoDB.
 - ApostropheCMS - Content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB.
 - Strapi - Content Management Framework (headless-CMS) to build powerful APIs.
 - Tipe - Developer-first content management system with GraphQL and REST API from a schema file.
 
Forum
- nodeBB - Forum platform for the modern web.
 
Blogging
Weird
- cows - ASCII cows.
 - superb - Get superb like words.
 - cat-names - Get popular cat names.
 - dog-names - Get popular dog names.
 - superheroes - Get superhero names.
 - supervillains - Get supervillain names.
 - cool-ascii-faces - Get some cool ascii faces.
 - cat-ascii-faces - 
₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”. - nerds - Get data from nerdy topics like Harry Potter, Star Wars, and Pokémon.
 
Serialization
- snappy - Native bindings for Google's Snappy compression library.
 - protobuf - Implementation of Protocol Buffers.
 - compactr - Implementation of the Compactr protocol.
 
Miscellaneous
- execa - Better 
child_process. - cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
 - Electron - Build cross platform desktop apps with web technologies. (You might like awesome-electron)
 - open - Opens stuff like websites, files, executables.
 - hasha - Hashing made simple. Get the hash of a buffer/string/stream/file.
 - dot-prop - Get a property from a nested object using a dot path.
 - onetime - Only run a function once.
 - mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.
 - import-fresh - Import a module while bypassing the cache.
 - strip-bom - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
 - os-locale - Get the system locale.
 - ssh2 - SSH2 client and server module.
 - adit - SSH tunneling made simple.
 - import-lazy - Import a module lazily.
 - file-type - Detect the file type of a Buffer.
 - Bottleneck - Rate limiter that makes throttling easy.
 - ow - Function argument validation for humans.
 - webworker-threads - Lightweight Web Worker API implementation with native threads.
 - clipboardy - Access the system clipboard (copy/paste).
 - node-pre-gyp - Makes it easy to publish and install Node.js C++ addons from binaries.
 - opencv - Bindings for OpenCV. The defacto computer vision library.
 - dotenv - Load environment variables from .env file.
 - remote-git-tags - Get tags from a remote git repo.
 - semver - Semantic version parser.
 - Faker.js - Generate massive amounts of fake data.
 - nodegit - Native bindings to Git.
 - json-strictify - Safely serialize a value to JSON without data loss or going into an infinite loop.
 - resolve-from - Resolve the path of a module like 
require.resolve()but from a given path. - simplecrawler - Event driven web crawler.
 - jsdom - JavaScript implementation of HTML and the DOM.
 - hypernova - Server-side rendering your JavaScript views.
 - @sindresorhus/is - Type check values.
 - env-dot-prop - Get, set, or delete nested properties of process.env using a dot path.
 - emittery - Simple and modern async event emitter.
 - node-video-lib - Pure JavaScript library for working with MP4 and FLV video files and creating MPEG-TS chunks for HLS streaming.
 - basic-ftp – FTP/FTPS client.
 
Resources
Tutorials
- Node.js Best Practices - Summary and curation of the top-ranked content on Node.js best practices, available in multiple languages.
 - Nodeschool - Learn Node.js with interactive lessons.
 - The Art of Node - An introduction to Node.js.
 - stream-handbook - How to write Node.js programs with streams.
 - module-best-practices - Some good practices when writing new npm modules.
 - The Node Way - An entire philosophy of Node.js best practices and guiding principles exists for writing maintainable modules, scalable applications, and code that is actually pleasant to read.
 - You Don't Know Node.js - Introduction to Node.js core features and asynchronous JavaScript.
 - Portable Node.js guide - Practical guide on how to write portable/cross-platform Node.js code.
 
Discovery
- npms - Superb package search with deep analysis of package quality using a myriad of metrics.
 - npm addict - Your daily injection of npm packages.
 - npmcompare.com - Compare and discover npm packages.
 
Articles
- Error Handling in Node.js
 - Teach Yourself Node.js in 10 Steps
 - Mastering the filesystem in Node.js
 - Semver: A Primer
 - Semver: Tilde and Caret
 - Why Asynchronous?
 - Understanding the Node.js Event Loop
 - Understanding Object Streams
 - Art of README - Learn the art of writing quality READMEs.
 - Using Express to Quickly Build a GraphQL Server
 
Newsletters
- Node Weekly - Weekly e-mail round-up of Node.js news and articles.
 - Node Module Of The Week! - Weekly dose of hand picked node modules.
 
Videos
- Introduction to Node.js with Ryan Dahl
 - Hands on with Node.js
 - Nodetuts - Series of talks, including TCP & HTTP API servers, async programming, and more.
 - V8 Garbage Collector - Trash talk about the V8 garbage collector.
 
Books
- Node.js in Action
 - Node.js in Practice
 - Mastering Node
 - Node.js 8 the Right Way
 - Professional Node.js: Building Javascript Based Scalable Software
 - Practical Node.js: Building Real-World Scalable Web Apps
 - Mixu's Node book
 - Web Development with Node and Express
 - Pro Express.js
 - Secure Your Node.js Web Application
 - Express in Action
 - Practical Modern JavaScript
 - Mastering Modular JavaScript
 - Get Programming with Node.js
 
Blogs
- Node.js blog
 - webapplog.com - 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 - Video course by Wes Bos.
 - Real Time Web with Node.js
 - Learn and Understand Node.js
 
Cheatsheets
- Express.js
 - Stream FAQs - Answering common questions about streams, covering pagination, events, and more.
 - Strong Node.js - Checklist for source code security analysis of a Node.js web service.
 
Tools
- OctoLinker - Chrome extension that linkifies dependencies in package.json, .js, .jsx, .coffee and .md files on GitHub.
 - npm-hub - Chrome extension to display npm dependencies at the bottom of a repo's readme.
 - RunKit - Embed a Node.js environment on any website.
 - RequireBin - Shareable JavaScript programs powered by npm and browserify.
 - github-npm-stats - Chrome extension that displays npm download stats on GitHub.
 - npm semver calculator - Visually explore what versions of a package a semver range matches.
 
Community
Miscellaneous
- nodebots - Robots powered by JavaScript.
 - node-module-boilerplate - Boilerplate to kickstart creating a node module.
 - generator-nm - Scaffold out a node module.
 - Microsoft Node.js Guidelines - Tips, tricks, and resources for working with Node.js on Microsoft platforms.
 - Module Requests & Ideas - Request a JavaScript module you wish existed or get ideas for modules.
 
Related lists
- awesome-npm - Resources and tips for using npm.
 - awesome-cross-platform-nodejs - Resources for writing and testing cross-platform code.
 
原文:
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
发布日期
              星期三, 九月 11, 2019 - 23:29
          最后修改
              星期四, 一月 5, 2023 - 21:55
          Article
      
      最新内容
- 3 weeks 2 days ago
 - 3 weeks 2 days ago
 - 3 weeks 2 days ago
 - 3 weeks 2 days ago
 - 3 weeks 2 days ago
 - 3 weeks 2 days ago
 - 3 weeks 2 days ago
 - 3 weeks 2 days ago
 - 3 weeks 2 days ago
 - 3 weeks 2 days ago