Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

awesome-nodejs #54

Open
Marinerer opened this issue Sep 24, 2024 · 3 comments
Open

awesome-nodejs #54

Marinerer opened this issue Sep 24, 2024 · 3 comments

Comments

@Marinerer
Copy link
Owner

Marinerer commented Sep 24, 2024

nodejs awesome

outline

Course

@Marinerer
Copy link
Owner Author

Marinerer commented Sep 24, 2024

源自: https://github.com/sindresorhus/awesome-nodejs

Official

Packages

Mad science

  • webtorrent - Streaming torrent client for Node.js and the browser.
  • peerflix - Streaming torrent client.
  • ipfs - Distributed file system that seeks to connect all computing devices with the same system of files.
  • stackgl - Open software ecosystem for WebGL, built on top of browserify and npm.
  • peerwiki - All of Wikipedia on BitTorrent.
  • peercast - Stream a torrent video to Chromecast.
  • BitcoinJS - Clean, readable, proven Bitcoin library.
  • Bitcore - Pure and powerful Bitcoin library.
  • PDFKit - PDF generation library.
  • turf - Modular geospatial processing and analysis engine.
  • webcat - p2p pipe across the web using WebRTC that uses your GitHub private/public key for authentication.
  • NodeOS - The first operating system powered by npm.
  • YodaOS - AI operating system.
  • Brain.js - Machine-learning framework.
  • Pipcook - Front-end algorithm framework to create a machine learning pipeline.
  • Cytoscape.js - Graph theory (a.k.a. network) modeling and analysis.
  • js-git - JavaScript implementation of Git.
  • xlsx - Pure JS Excel spreadsheet reader and writer.
  • isomorphic-git - Pure JavaScript implementation of Git.

Command-line apps

  • np - Better npm publish.
  • npm-name - Check a package name's availability on npm.
  • gh-home - Open the GitHub page of the repo in the current directory.
  • npm-home - Open the npm page of a package.
  • trash - Safer alternative to rm.
  • speed-test - Test your internet connection speed and ping.
  • pageres - Capture website screenshots.
  • cpy - Copy files.
  • vtop - More better top, with nice charts.
  • empty-trash - Empty the trash.
  • is-up - Check whether a website is up or down.
  • is-online - Check if the internet connection is up.
  • public-ip - Get your public IP address.
  • clipboard-cli - Copy & paste on the terminal.
  • XO - Enforce strict code style using the JavaScript happiness style.
  • ESLint - The pluggable linting utility for JavaScript.
  • David - Tells you when your package npm dependencies are out of date.
  • http-server - Simple, zero-config command-line HTTP server.
  • Live Server - Development HTTP-server with livereload capability.
  • bcat - Pipe command output to web browsers.
  • normit - Google Translate with speech synthesis in your terminal.
  • fkill - Fabulously kill processes. Cross-platform.
  • pjs - Pipeable JavaScript. Quickly filter, map, and reduce from the terminal.
  • license-checker - Check licenses of your app's dependencies.
  • browser-run - Easily run code in a browser environment.
  • tmpin - Adds stdin support to any CLI app that accepts file input.
  • wallpaper - Change the desktop wallpaper.
  • pen - Live Markdown preview in the browser from your favorite editor.
  • dark-mode - Toggle the macOS Dark Mode.
  • Jsome - Pretty prints JSON with configurable colors and indentation.
  • mobicon - Mobile app icon generator.
  • mobisplash - Mobile app splash screen generator.
  • diff2html-cli - Pretty git diff to HTML generator.
  • trymodule - Try out npm packages in the terminal.
  • jscpd - Copy/paste detector for source code.
  • atmo - Server-side API mocking.
  • auto-install - Auto installs dependencies as you code.
  • 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.
  • npkill - Easily find and remove old and heavy node_modules folders.

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.
  • Mout - Utility library with the biggest difference between other existing solutions is that you can choose to load only the modules/functions that you need, no extra overhead.
  • RxJS - Functional reactive library for transforming, composing, and querying various kinds of data.
  • Kefir.js - Reactive library with focus on high performance and low memory usage.

HTTP

  • got - Nicer interface to the built-in http module.
  • undici - High performance HTTP client written from scratch with zero dependencies.
  • ky-universal - Universal HTTP client based on Fetch.
  • node-fetch - window.fetch for Node.js.
  • axios - Promise based HTTP client (works in the browser too).
  • superagent - HTTP request library.
  • http-fake-backend - Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
  • cacheable-request - Wrap native HTTP requests with RFC compliant cache support.
  • gotql - GraphQL request library built on got.
  • global-agent - Global HTTP/HTTPS proxy agent that is configurable using environment variables.
  • smoke - File-based HTTP mock server with recording abilities.
  • purest - REST client.

Debugging / Profiling

  • debug - Tiny debugging utility.
  • why-is-node-running - Node.js is running but you don't know why?
  • njsTrace - Instrument and trace your code, see all function calls, arguments, return values, as well as the time spent in each function.
  • vstream - Instrumentable streams mix-ins to inspect a pipeline of streams.
  • stackman - Enhance an error stacktrace with code excerpts and other goodies.
  • locus - Starts a REPL at runtime that has access to all variables.
  • 0x - Flamegraph profiling.
  • ctrace - Well-formatted and improved trace system calls and signals.
  • leakage - Write memory leak tests.
  • llnode - Post-mortem analysis tool which allows you to inspect objects and get insights from a crashed Node.js process.
  • thetool - Capture different CPU, memory, and other profiles for your app in Chrome DevTools friendly format.
  • swagger-stats - Trace API calls and monitor API performance, health, and usage metrics.
  • NiM - Manages DevTools debugging workflow.
  • dats - Minimalistic and zero-dependencies StatsD client.

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.
  • consola - Console logger.

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.
  • listr2 - Terminal task list.
  • conf - Simple config handling for your app or module.
  • ansi-escapes - ANSI escape codes for manipulating the terminal.
  • log-symbols - Colored symbols for various log levels.
  • figures - Unicode symbols with Windows CMD fallbacks.
  • boxen - Create boxes in the terminal.
  • terminal-link - Create clickable links in the terminal.
  • terminal-image - Display images in the terminal.
  • string-width - Get the visual width of a string - the number of columns required to display it.
  • cli-truncate - Truncate a string to a specific width in the terminal.
  • blessed - Curses-like library.
  • Inquirer.js - Interactive command-line prompt.
  • yn - Parse yes/no like values.
  • cli-table3 - Pretty unicode tables.
  • drawille - Draw on the terminal with unicode braille characters.
  • ascii-charts - ASCII bar chart in the terminal.
  • progress - Flexible ascii progress bar.
  • insight - Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics.
  • cli-cursor - Toggle the CLI cursor.
  • cli-columns - Columnated unicode and ansi-safe text lists.
  • cfonts - Sexy ASCII fonts for the console.
  • multispinner - Multiple, simultaneous, individually controllable CLI spinners.
  • omelette - Shell autocompletion helper.
  • cross-env - Set environment variables cross-platform.
  • shelljs - Portable Unix shell commands.
  • sudo-block - Block users from running your app with root permissions.
  • sparkly - Generate sparklines ▁▂▃▅▂▇.
  • Bit - Create, maintain, find and use small modules and components across repositories.
  • gradient-string - Beautiful color gradients in terminal output.
  • oclif - CLI framework complete with parser, automatic documentation, testing, and plugins.
  • terminal-size - Reliably get the terminal window size.
  • Cliffy - Framework for interactive CLIs.
  • zx - Write shell scripts JavaScript.

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.
  • FuseBox - Fast build system that combines the power of webpack, JSPM and SystemJS, with first-class TypeScript support.
  • pkg - Package your Node.js project into an executable.
  • Vite - Front-end build tool with hot module replacement and static asset bundling.

Hardware

  • johnny-five - Firmata based Arduino Framework.
  • serialport - Access serial ports for reading and writing.
  • usb - USB library.
  • i2c-bus - I2C serial bus access.
  • onoff - GPIO access and interrupt detection.
  • spi-device - SPI serial bus access.
  • pigpio - Fast GPIO, PWM, servo control, state change notification, and interrupt handling on the Raspberry Pi.
  • gps - NMEA parser for handling GPS receivers.
  • modbus-serial - A pure JavaScript implementation of MODBUS-RTU (serial and TCP).

Templating

  • 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

  • Fastify - Fast and low overhead web framework.
  • Next.js - Minimalistic framework for server-rendered universal JavaScript web apps.
  • Nuxt.js - Minimalistic framework for server-rendered Vue.js apps.
  • Hapi - Framework for building applications and services.
  • Micro - Minimalistic microservice framework with an async approach.
  • Koa - Framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
  • Express - Web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
  • Feathers - Microservice framework built in the spirit of Express.
  • LoopBack - Powerful framework for creating REST APIs and easily connecting to backend data sources.
  • Meteor - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. (You might like awesome-meteor)
  • Restify - Enables you to build correct REST web services.
  • ThinkJS - Framework with ES2015+ support, WebSockets, REST API.
  • ActionHero - Framework for making reusable & scalable APIs for TCP sockets, WebSockets, and HTTP clients.
  • seneca - Toolkit for writing microservices.
  • AdonisJs - A true MVC framework for Node.js built on solid foundations of Dependency Injection and IoC container.
  • Moleculer - Fast & powerful microservices framework.
  • Nest - Angular-inspired framework for building efficient and scalable server-side apps.
  • TypeGraphQL - Modern framework for creating GraphQL APIs with TypeScript, using classes and decorators.
  • Tinyhttp - Modern and fast Express-like web framework.
  • Marble.js - Functional reactive framework for building server-side apps, based on TypeScript and RxJS.
  • Lad - Framework made by a former Express TC and Koa member that bundles web, API, job, and proxy servers.
  • Ts.ED - Intituive TypeScript framework for building server-side apps on top of Express.js or Koa.js.
  • Hono - Small and fast web framework.

Documentation

  • documentation.js - API documentation generator with support for ES2015+ and flow annotation.
  • Docco - Documentation generator which produces an HTML document that displays your comments intermingled with your code.
  • JSDoc - API documentation generator similar to JavaDoc or PHPDoc.
  • Docusaurus - Documentation website generator that leverages React and Markdown, and comes with translation and versioning features.

Filesystem

  • del - Delete files/folders using globs.
  • globby - Glob files with support for multiple patterns.
  • chokidar - Filesystem watcher which stabilizes events from fs.watch and fs.watchFile as well as using native fsevents on macOS.
  • find-up - Find a file by walking up parent directories.
  • proper-lockfile - Inter-process and inter-machine lockfile utility.
  • load-json-file - Read and parse a JSON file.
  • write-json-file - Stringify and write JSON to a file atomically.
  • fs-write-stream-atomic - Like fs.createWriteStream(), but atomic.
  • filenamify - Convert a string to a valid filename.
  • istextorbinary - Check if a file is text or binary.
  • fs-jetpack - Completely redesigned file system API for convenience in everyday use.
  • fs-extra - Extra methods for the fs module.
  • 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
    • 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
  • Streams
    • Highland.js - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.

Streams

  • get-stream - Get a stream as a string or buffer.
  • from2 - Convenience wrapper for ReadableStream, inspired by through2.
  • into-stream - Convert a buffer/string/array/object into a stream.
  • duplexify - Turn a writeable and readable stream into a single streams2 duplex stream.
  • pumpify - Combine an array of streams into a single duplex stream.
  • peek-stream - Transform stream that lets you peek the first line before deciding how to parse it.
  • binary-split - Newline (or any delimiter) splitter stream.
  • byline - Super-simple line-by-line Stream reader.
  • first-chunk-stream - Transform the first chunk in a stream.
  • pad-stream - Pad each line in a stream.
  • multistream - Combine multiple streams into a single stream.
  • readable-stream - Mirror of Streams2 and Streams3 implementations in core.
  • through2-concurrent - Transform object streams concurrently.

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 type of an image.
  • image-dimensions - Get the dimensions of an image.
  • 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.
  • qrcode - QR code and bar code generator.
  • ImageScript - Image processing in JavaScript, utilizing WebAssembly for performance.

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.
  • splice-string - Remove or replace part of a string like Array#splice.
  • indent-string - Indent each line in a string.
  • strip-indent - Strip leading whitespace from every line in a string.
  • detect-indent - Detect the indentation of code.
  • he - HTML entity encoder/decoder.
  • i18n-node - Simple translation module with dynamic JSON storage.
  • babelfish - i18n with very easy syntax for plurals.
  • matcher - Simple wildcard matching.
  • unhomoglyph - Normalize visually similar unicode characters.
  • i18next - Internationalization framework.
  • nanoid - Tiny, secure, URL-friendly, unique string ID generator.
  • StegCloak - Conceal secrets within strings, in plain sight.

Number

  • 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.2341.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.
  • 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

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.
  • Superstruct - Simple and composable way to validate data in JavaScript (and TypeScript).
  • yup - Object schema validation.
  • zod - TypeScript-first schema validation with static type inference.

Parsing

  • remark - Markdown processor powered by plugins.
  • markdown-it - Markdown parser with 100% CommonMark support, extensions and syntax plugins.
  • parse5 - Fast full-featured spec compliant HTML parser.
  • @parcel/css - A CSS parser, transformer, and minifier written in Rust.
  • strip-json-comments - Strip comments from JSON.
  • strip-css-comments - Strip comments from CSS.
  • parse-json - Parse JSON with more helpful errors.
  • URI.js - URL mutation.
  • JSONStream - Streaming JSON.parse and stringify.
  • neat-csv - Fast CSV parser. Callback interface for the above.
  • csv-parser - Streaming CSV parser that aims to be faster than everyone else.
  • PEG.js - Simple parser generator that produces fast parsers with excellent error reporting.
  • x-ray - Web scraping utility.
  • nearley - Simple, fast, powerful parsing for JavaScript.
  • binary-extract - Extract a value from a buffer of JSON without parsing the whole thing.
  • Stylecow - Parse, manipulate and convert modern CSS to make it compatible with all browsers. Extensible with plugins.
  • js-yaml - Very fast YAML parser.
  • xml2js - XML to JavaScript object converter.
  • Jison - Friendly JavaScript parser generator. It shares genes with Bison, Yacc and family.
  • google-libphonenumber - Parse, format, store and validate phone numbers.
  • ref - Read/write structured binary data in Buffers.
  • xlsx-populate - Read/write Excel XLSX.
  • Chevrotain - Very fast and feature rich parser building toolkit for JavaScript.
  • fast-xml-parser - Validate and parse XML.

Humanize

  • pretty-bytes - Convert bytes to a human readable string: 13371.34 kB.
  • pretty-ms - Convert milliseconds to a human readable string: 133700000015d 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.

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
  • ODM / ORM
    • Sequelize - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL, and more.
    • Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
    • 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.
    • MikroORM - TypeScript ORM based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite.
    • Prisma - Modern database access (ORM alternative). Auto-generated and type-safe query builder in TypeScript. Supports PostgreSQL, MySQL & SQLite.
    • Drizzle ORM - TypeScript ORM that supports various databases such as PostgreSQL.
  • 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.
    • @databases - Query PostgreSQL, MySQL and SQLite3 with plain SQL without risking SQL injection.
    • pg-mem - In-memory PostgreSQL instance for your tests.

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.
  • Puppeteer - Headless Chrome.
  • Playwright - Headless Chromium, WebKit, and Firefox with a single API.
  • nve - Run any command on multiple versions of Node.js locally.
  • axe-core - Accessibility engine for automated Web UI testing.
  • testcontainers-node - Provides lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.

Security

  • upash - Unified API for all password hashing algorithms.
  • themis - Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on.
  • GuardRails - GitHub app that provides security feedback in pull requests.
  • rate-limiter-flexible - Brute-force and DDoS attack protection.
  • crypto-hash - Async non-blocking hashing.
  • jose-simple - Encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.

Benchmarking

  • Benchmark.js - Benchmarking library that supports high-resolution timers and returns statistically significant results.

Minifiers

Authentication

  • Passport - Simple, unobtrusive authentication.
  • Grant - OAuth providers for Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel, and many more.

Authorization

  • CASL - Isomorphic authorization for UI and API.
  • node-casbin - Authorization library that supports access control models like ACL, RBAC and ABAC.

Email

  • Nodemailer - The fastest way to handle email.
  • emailjs - Send text/HTML emails with attachments to any SMTP server.
  • email-templates - Create, preview, and send custom email templates.
  • MJML - Markup language designed to reduce the pain of creating responsive emails.

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.
  • bullmq - Persistent job and message queue.
  • bree - Job task scheduler with worker threads, cron, date, and human syntax support.

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.
  • fnm - Cross-platform Node.js version manager built in Rust.

Cross-platform integration

  • napi-rs - Framework for building compiled Node.js add-ons in Rust via Node-API.
  • Neon - Rust bindings for writing safe and fast native Node.js modules.
  • Edge.js - Run .NET and Node.js code in the same process on Windows, macOS, and Linux.
  • DotNetJS - Consume .NET libraries in Node.js using this .NET interoperability layer.

Natural language processing

  • 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 *.js file changes.
  • Phusion Passenger - Friendly process manager that integrates directly into Nginx.

Automation

  • robotjs - Desktop Automation: control the mouse, keyboard and read the screen.
  • nut.js - Cross-platform native GUI automation / testing framework with image matching capabilities which integrates with Jest.

AST

  • Acorn - Tiny, fast JavaScript parser.
  • babel-parser - JavaScript parser used in Babel.

Static site generators

  • DocPad - Static site generator with dynamic abilities and huge plugin ecosystem.
  • docsify - Markdown documentation site generator with no statically built HTML files.
  • Charge - Opinionated, zero-config static site generator using JSX and MDX.

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.
  • Factor - Vue.js dashboard framework and headless CMS.
  • AdminBro - Auto-generated admin panel with CRUD for all your resources.
  • Graphweaver - CMS and headless GraphQL API.

Forum

  • nodeBB - Forum platform for the modern web.

Blogging

  • Ghost - Simple, powerful publishing platform.
  • Hexo - Fast, simple and powerful blogging framework.

Weird

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.
  • open - Opens stuff like websites, files, executables.
  • hasha - Hashing made simple. Get the hash of a buffer/string/stream/file.
  • dot-prop - Get a property from a nested object using a dot path.
  • onetime - Only run a function once.
  • mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input.
  • strip-bom - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
  • os-locale - Get the system locale.
  • ssh2 - SSH2 client and server module.
  • adit - SSH tunneling made simple.
  • file-type - Detect the file type of a Buffer.
  • Bottleneck - Rate limiter that makes throttling easy.
  • webworker-threads - Lightweight Web Worker API implementation with native threads.
  • clipboardy - Access the system clipboard (copy/paste).
  • node-pre-gyp - Makes it easy to publish and install Node.js C++ addons from binaries.
  • opencv - Bindings for OpenCV. The defacto computer vision library.
  • dotenv - Load environment variables from .env file.
  • semver - Semantic version parser.
  • nodegit - Native bindings to Git.
  • json-strictify - Safely serialize a value to JSON without data loss or going into an infinite loop.
  • jsdom - JavaScript implementation of HTML and the DOM.
  • @sindresorhus/is - Type check values.
  • env-dot-prop - Get, set, or delete nested properties of process.env using a dot path.
  • node-video-lib - Pure JavaScript library for working with MP4 and FLV video files and creating MPEG-TS chunks for HLS streaming.
  • basic-ftp - FTP/FTPS client.
  • cashify - Currency conversion.
  • genepi - Automatically generate a native Node.js addon from C++ code.
  • husky - Create Git hook scripts.
  • patch-package - Make and preserve fixes to npm dependencies.
  • editly - Declarative video editing API.
  • wild-wild-path - Object property paths with wildcards and regexes.
  • uint8array-extras - Useful utilities for working with Uint8Array and Buffer.

Package Manager

  • npm - The default package manager.
  • pnpm - Disk space efficient package manager.
  • yarn - Alternative package manager.
  • bun - All-in-one toolkit for JavaScript and TypeScript apps.

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.
  • module-best-practices - Some good practices when writing new npm modules.
  • The Node Way - An entire philosophy of Node.js best practices and guiding principles exists for writing maintainable modules, scalable applications, and code that is actually pleasant to read.
  • You Don't Know Node.js - Introduction to Node.js core features and asynchronous JavaScript.
  • Portable Node.js guide - Practical guide on how to write portable/cross-platform Node.js code.
  • Build a real web app with no frameworks - A set of video tutorials/livestreams to help you build and deploy a real, live web app using a handful of simple libraries and the core Node.js modules.

Discovery

Articles

Newsletters

  • Node Weekly - Weekly e-mail round-up of Node.js news and articles.

Videos

Books

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

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.
  • github-npm-stats - Chrome extension that displays npm download stats on GitHub.
  • npm semver calculator - Visually explore what versions of a package a semver range matches.
  • CodeSandbox - Online IDE and prototyping.
  • Amplication - Auto-generates fully functional apps.
  • RunJS - Desktop JavaScript playground.

Community

Miscellaneous

Related lists

@Marinerer
Copy link
Owner Author

源自:https://github.com/zerolab-fe/awesome-nodejs

AI

  • brain.js - 基于模型训练的神经网络 JS 库,支持浏览器和 Node
  • tfjs - TensorFlow JS 版本

AST

  • gogocode - AST 处理工具(阿里妈妈)

Build tools

  • pkg - 将 Node.js 项目打包成可执行文件
  • gulp - 基于流(stream)的自动化构建工具
  • parcel - 开箱即用、零配置的打包器
  • rollup - Next-generation ES2015 module bundler
  • webpack - 静态模块打包工具
  • @vercel/ncc - 将 Node.js 项目编译为单个文件

Command-line apps

  • eslint-nibble - 一个能够快速预览 ESLint 错误并生成错误报告的 CLI 工具
  • release-it - 用于自动化版本控制和包发布的 Node CLI 工具
  • depcheck - 检查项目中未使用的依赖
  • npm-check-updates - 查找、更新 package.json 中的依赖包
  • npm-run-all - 可以并行运行多个 npm 脚本
  • auto-install - 在编码时自动安装依赖
  • wifi-password-cli - 获取当前 wifi 密码
  • fkill-cli - 杀死进程,交互式,跨平台
  • node-bcat - 将日志实时输出到浏览器
  • live-server - 具有 livereload 功能的开发 HTTP 服务器
  • http-server - 一个简单的零配置命令行 http 服务器
  • david - 检测 npm 依赖是否过时
  • is-online - 检查互联网连接是否建立
  • pageres - 捕获各种分辨率的网站屏幕截图
  • speed-test - 使用 speedtest.net 测试网速和ping
  • trash - 将文件移动到回收站,rm 的安全替代方法
  • gh-home - 打开给定或当前仓库的GitHub页面
  • npm-name - 检查软件包或组织名称在npm上是否可用
  • np - A better npm publish
  • gh - GitHub的官方命令行工具

Command-line utilities

  • nanocolors - 比 chalk 执行速度快 2 倍、node_modules 体积小 5 倍的命令行着色工具
  • import-local - 允许全局安装的 CLI工具 使用自身的本地安装版本
  • text-table - 将终端中的内容以无边框表格的形式输出(文本对齐)
  • table - 将数据格式化为表格
  • node-progress - 进度条
  • cli-highlight - 命令行终端语法高亮
  • boxen - Create boxes in the terminal
  • global-modules - 返回全局 node_modules 目录
  • preferred-pm - 返回项目的首选包管理器<pnpm|yarn|npm>
  • npm-check - 检查过时,不正确和未使用的依赖项。
  • validate-npm-package-name - 检查包名是否符合 npm 规范
  • fast-levenshtein - Levenshtein 算法,指两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。
  • update-notifier - Update notifications for your CLI app
  • commander - 完整的 node.js 命令行解决方案
  • color - Javascript 颜色转换和操作库
  • update-check - 检查模块是否有更新
  • minimist - 标准命令行参数解析工具
  • figlet - 将普通终端文本转换为大字母,如 logo
  • clear - 清空终端屏幕
  • figures - 在 windows 或其他终端显示 Unicode 符号
  • ansi-escapes - 用于 ANSI 码转义
  • log-symbols - 为 log 添加彩色符号(info、success、warning、error)
  • conf - 轻松设置配置信息
  • listr - Terminal 任务列表
  • ink - 使用 React 写命令行应用
  • log-update - 在 Terminal 渲染进度条或动画
  • ora - Terminal spinner
  • yargs - 命令行参数解析工具
  • enquirer - 用于创建交互式 CLI 提示
  • chalk - 在 Terminal 设置字符串颜色

Compiler

  • esbuild - 一个非常快的 JavaScript 打包器和压缩器(Go)
  • swc - Super fast javascript / typescript compiler

CSS

  • tailwindcss - 一个用于快速 UI 开发的实用工具集 CSS 框架

Database

  • prisma - Next-generation Node.js and TypeScript ORM
  • mysql - MySQL client
  • mongoose - 全能的 MongoDB ORM 库
  • sequelize - 一款支持 mysql, sqlite3, pg, msssql 的多功能 ORM 库

Date

  • dateformat - 日期格式化
  • dayjs - 一个轻量的日期库,具有和 Moment.js 兼容的API
  • date-fns - 日期工具类库,提供了最全面、最简单和一致的工具集
  • Luxon - 一个用于在JS中处理日期和时间的库

Debug

  • ndb - 由 Chrome DevTools 支持的 Node.js 调试工具
  • spy-debugger - 页面远程调试 & 抓包工具
  • vconsole - 微信小程序推出的调试工具,直接内嵌在页面内,支持控制台、网络、系统信息
  • node-inspector - Node debugger 和 Devtools 结合的调试工具
  • debug - 最好用的 debug 日志辅助工具

Documentation

Electron

  • electron-store - 用来保存 Electron 应用程序或模块的简单持久性数据

Email

  • mjml - 一个标识语言,用来减少编写响应式邮件的复杂度
  • email-templates - 电子邮件模板
  • emailjs - 发送电子邮件(smtp 协议)
  • nodemailer - 快速轻松发送电子邮件

Filesystem

  • jsonfile - 轻松读取/写入JSON文件
  • tmp - 创建临时文件或目录
  • nsfw - 一个简单文件监听库
  • mkdirp - 递归创建目录
  • tempy - 获取随机的临时文件或目录路径
  • move-file - 移动文件
  • pkg-dir - 查找 npm 或 Node.js 包的根目录
  • istextorbinary - 检查文件是文本文件还是二进制文件
  • filenamify - 将字符串转换为有效的安全文件名
  • write-json-file - Stringify and write JSON to a file atomically
  • load-json-file - Read and parse a JSON file
  • proper-lockfile - 进程间或机器间文件锁🔐
  • find-up - 遍历父目录查找文件
  • chokidar - 监听文件变化
  • fs-extra - 基于 fs 的扩展
  • make-dir - 递归创建目录
  • rimraf - 递归删除文件
  • cpy - Copy files
  • fast-glob - 快速的 Node.js 匹配库
  • globby - 基于 fast-glob 并提供了扩展
  • del - 删除文件和目录,基于 rimrafglob
  • resolve-cwd - 从当前工作目录解析模块的路径
  • clipboardy - 访问系统剪切板(copy/paste)
  • micromatch - 高度优化的通配符和全局匹配库,minimatch 和 multimatch 的替代品

Git

  • simple-git - 一个轻量级的接口,用于在任何 node.js 应用程序中运行 git 命令。
  • nodegit - 是 libgit2 的 Node.js 绑定版本
  • @gitgraph/node - 在 Terminal 绘制 git 流程图(支持浏览器、React)

HTTP

  • http-server - 静态文件服务器命令行工具,无需配置,一条命令开启 http 服务
  • spdy - SPDY/HTTP2 服务器,兼容 Express
  • anyproxy - 可供插件配置的HTTP/HTTPS代理服务器
  • request-promise - request 模块的 promise 版本
  • request - 简单易用的 HTTP 请求库
  • serve - 为静态文件或单页面应用提供服务
  • node-fetch - window.fetch for Node.js
  • superagent - 轻量的 HTTP 请求库
  • http-proxy - 支持 websocket 的 HTTP 代理库
  • download - 下载并解压文件
  • axios - 基于 Promise 的 HTTP 客户端(也可在浏览器中使用)
  • gh-got - 基于 got 的 GitHub API 封装
  • got - 人性化且功能强大的 HTTP 请求库
  • urllib - 处理复杂场景下的 HTTP 请求

Image

  • probe-image-size - 无需完全下载即可获取图像格式和大小
  • jimp - 完全用 JavaScrip t编写图像处理库
  • lwip - 轻量级图像处理器
  • gm - GraphicsMagick and ImageMagick for node
  • image-type - 检测图像类型 Buffer/Uint8Array
  • qrcode - 二维码和条形码生成器
  • sharp - 高性能 node.js 图像处理库,使用 libvips 库来实现

Linter & Formatter

  • textlint - Text 和 Markdown 校验和格式化
  • prettier - ❤支持多种语言的代码格式化程序
  • eslint - 插件化并且可配置的 JavaScript 语法规则和代码风格的检查工具
  • standard - JavaScript 代码规范,自带 linter & 代码自动修正

Logger

  • consola - Console Logger for Node.js and Browser
  • signale - Console logger
  • bunyan - Node.js 日志库
  • log4js - 优质的 Node.js 日志库
  • pino - 轻量的 node.js 日志库
  • winston - 支持多传输、简单通用的日志库

Low/No/Pro Code

Markdown

Network

Node.js management

  • nodeenv - Node.js 隔离环境(沙盒)构建器
  • n - node 版本管理器
  • nvm - node 版本管理器

Other

  • webtorrent - 用于 Node.js 和浏览器的BT种子视频下载与播放工具

Process management

  • supervisor - 监听文件变化并自动重启
  • nodemon - 监视 node.js 应用程序中的任何更改并自动重启服务器
  • pm2 - 内置负载均衡的 node 进程管理器

Testing

  • faker.js - 浏览器和 Node.js 生成大量虚假数据
  • msw - 用于浏览器和 Node.js 的 REST/GraphQL API模拟库。
  • json-server - 指定 json 文件作为 api 的数据源,模拟服务端接口数据
  • chai - Chai 是一个针对 Node.js 和浏览器的行为驱动测试和测试驱动测试的诊断库,可与任何 JavaScript 测试框架集成。
  • puppeteer - Headless Chrome Node.js API
  • codecov - 一款测试覆盖率检测软件包
  • mockjs - 浏览器和 Node 均可用,支持自定义 schema 和随机数据
  • nock - Node.js Mock 库

TypeScript

  • ts-node - 提供了 TypeScript 的运行环境

@Marinerer
Copy link
Owner Author

Marinerer commented Sep 30, 2024

AST

Online Tools

  • astexplorer.net - AST 在线调试工具, 支持多种语言和转换工具 🌟🌟🌟🌟🌟

Course


Transformer

CSS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant