Node.js包和资源集合

jopen 10年前

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.
  • Breach - Modular and hackable browser written in JavaScript.
  • peerwiki - All of Wikipedia on BitTorrent.
  • BitcoinJS - Clean, readable, proven Bitcoin library.
  • js-git - JavaScript implementation of Git.
  • NodeOS - The first operating system powered by npm.
  • PDFKit - PDF generation library.
  • turf - Modular geospatial processing and analysis engine.

Command-line apps

  • pageres - Responsive website screenshots.
  • trash - A safer alternative to rm.
  • Yo - Run Yeoman generators.
  • ESLint - The pluggable linting utility for JavaScript.
  • JSHint - A community-driven tool to detect errors and potential problems in JavaScript code.
  • JSCS - JavaScript Code Style checker.
  • cpy - Copy files.
  • torrent - Download torrents.
  • David - Tells you when your package npm dependencies are out of date.
  • vtop - More better top, with nice charts.
  • tmpin - Adds stdin support to any CLI app that accepts file input.
  • normit - Google Translate with speech synthesis in your terminal.
  • esformatter - JavaScript code beautifier/formatter.
  • is-up - Check whether a website is up or down.
  • ipify - Get your public IP address.
  • http-server - Simple, zero-config command-line HTTP server.
  • bcat - Pipe command output to web browsers.

Functional programming

  • Lo-Dash - A utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.
  • 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.
  • mori - A library for using ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript.
  • Folktale - A suite of libraries for generic functional programming in JavaScript that allows you to write elegant modular applications with fewer bugs, and more reuse.
  • immutable - Immutable data collections.
  • underscore-contrib - The brass buckles on Underscore's utility belt.
  • Bacon.js - Functional reactive programming.

HTTP

  • request - Simplified HTTP request client.
  • got / sent - A nicer interface to the built-in http module.
  • superagent - A small progressive HTTP request library.
  • hyperquest - Streaming HTTP requests.
  • spdy - Creates SPDY servers with the same API as the built-in https module.
  • Nock - A HTTP mocking and expectations library.
  • download - Download and extract files effortlessly.
  • wreck - HTTP Client Utilities.

Debugging / Profiling

  • node-inspector - Debugger based on Blink Developer Tools.
  • Theseus - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree.
  • longjohn - Long stack traces with configurable call trace length.
  • debug - Tiny debugging utility.
  • jstrace - Dynamic tracing for JavaScript, similar to dtrace, ktap etc.
  • TraceGL - Transforms your JavaScript, injecting monitoring code that produces a log of everything that happens.
  • spy-js - Tracing tool for JavaScript, featuring configurable event capturing, searchable call stack, code coverage, recorded object values inspection, multi process and node cluster tracing support.
  • njsTrace - Instrument and trace you 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.

Logging

  • winston - A multi-transport async logging library.
  • Bunyan - A simple and fast JSON logging library.

Web frameworks

  • Koa - A new web 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 - A minimal and flexible web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
  • Hapi - A rich framework for building applications and services.
  • 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.
  • SailsJS - An MVC web framework with a modern twist, supporting WebSockets, streams, and a data-driven API.
  • Restify - A node framework built specifically to enable you to build correct REST web services.
  • Derby - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
  • Interfake - Rapid prototyping framework for making mock HTTP APIs, with a Node, command-line and HTTP interface.

Command-line utilities

  • chalk - Terminal string styling done right.
  • minimist - Parse command-line flags.
  • get-stdin - Easier stdin.
  • Inquirer.js - Interactive command-line prompt.
  • update-notifier - Update notifications for your CLI app.
  • sudo-block - Block users from running your app with root permissions.
  • configstore - Easily load and persist config without having to think about where and how.
  • insight - Helps you understand how your tool is being used by anonymously reporting usage metrics to Google Analytics.
  • sparkly - Generate sparklines ▁▂▃▅▂▇
  • blessed - A curses-like library.
  • cli-table - Pretty unicode tables.
  • drawille - Draw on the terminal with unicode braille characters.
  • progress - Flexible ascii progress bar.
  • log-symbols - Colored symbols for various log levels.
  • columnify - Create text-based columns suitable for console output. Supports cell wrapping.
  • googleauth - Create and load persistent Google authentication tokens for command-line apps.
  • figures - Unicode symbols with Windows CMD fallbacks.
  • cli-cursor - Toggle the CLI cursor.

Package managers

  • npm - A package manager for Node.js and the web.
  • Bower - A package manager for the web.
  • Component - A package manager for building better web apps.
  • Duo - A next-generation package manager for the front-end.
  • jspm.io - Frictionless browser package management with support for ES6, CommonJS, AMD modules.

Build tools

  • gulp.js - Streaming and fast build system that favors code over config.
  • grunt - Task runner that can perform repetitive tasks like minification, compilation, unit testing, linting, etc.
  • Broccoli - A fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions.
  • browserify - Browser-side require() the Node.js way.
  • webpack - Packs CommonJS/AMD modules for the browser.
  • Brunch - Front-end web app build tool with simple declarative config, fast incremental compilation, and an opinionated workflow.

Hardware

  • johnny-five - Firmata based Arduino Framework.
  • serialport - Access serial ports for reading and writing.
  • usb - USB library.

Templating

  • handlebars.js - A superset of Mustache templates which adds powerful features like helpers and more advanced blocks.
  • hogan.js - 推ter's small, fast, phase-separated compiler for Mustache templates.
  • Jade - High performance template engine heavily influenced by Haml.
  • nunjucks - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired).

Documentation

  • Docco - A quick-and-dirty documentation generator which produces an HTML document that displays your comments intermingled with your code.
  • JSDoc - API documentation generator similar to JavaDoc or PHPDoc.
  • dox - JavaScript documentation generator using Markdown and JSDoc.
  • jsdox - JSDoc3 to Markdown documentation generator.
  • apiDoc - Inline documentation for RESTful web APIs.

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.
  • mkdirp - Recursively create directories like mkdir -p.
  • graceful-fs - Drop-in replacement for the fs module with various improvements.
  • fs-extra - Extra methods for the fs module.

Control flow

  • Callbacks
    • each-async - Async concurrent iterator like forEach.
    • async - Provides straight-forward, powerful functions for working with asynchronousity.
    • after-all-results - Bundle results of async functions calls into one callback with all the results.
    </li>
  • Generators
    • co - The ultimate generator based flow-control goodness.
    • suspend - Generator-based control flow that plays nice with callbacks, promises, and thunks.
    • </ul> </li>
    • Promises
      • native-promise-only - A polyfill for native ES6 Promises.
      • Bluebird - A fully featured promise library with focus on innovative features and performance.
      • Q - A tool for making and composing asynchronous promises.
      • </ul> </li>
      • Streams
        • Highland.js - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
        • </ul> </li>
        • Channels
          • js-csp - Communicating sequential processes for JavaScript (like Clojurescript core.async, or Go).
          • </ul> </li>
          • Other
            • zone - Provides a way to group and track resources and errors across asynchronous operations.
            • </ul> </li> </ul>

              Streams

              • through2 - Tiny wrapper around streams2 Transform to avoid explicit subclassing noise.
              • concat-stream - Concatenates a stream into strings or binary data.
              • simple-bufferstream - Turn a Buffer into a ReadableStream.
              • co-stream - co generator stream.
              • byline - Super-simple line-by-line Stream reader.
              • first-chunk-stream - Transform the first chunk in 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.
              • from2 - Convenience wrapper for ReadableStream, inspired by through2.
              • from2-array - Create a from2 stream based on an array of source values.
              • peek-stream - Transform stream that lets you peek the first line before deciding how to parse it.
              • binary-split - A fast newline (or any delimiter) splitter stream.
              • multistream - Combine multiple streams into a single stream.
              • graphicsmagick-stream - Fast convertion/scaling of images using a pool of long lived graphicsmagick processes.
              • readable-stream - Mirror of Streams2 and Streams3 implementations in core.

              Real-time

              • Socket.io - Enables real-time bidirectional event-based communication.
              • 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.
              • Straw - Real-time dataflow framework.

              Date

              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.

              Text

              • Underscore.string - Collection of string manipulation utilities.
              • he - A robust HTML entity encoder/decoder.
              • iconv-lite - Convert character encodings.
              • escape-string-regexp - Escape RegExp special characters.
              • 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.
              • i18n-node - Simple translation module with dynamic JSON storage.
              • string-length - Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes.
              • speakingurl - Generate a slug from a string with transliteration.

              Math

              • ndarray - Multidimensional arrays.
              • mathjs - An extensive math library.

              Data validation

              • joi - Object schema description language and validator for JavaScript objects.

              Parsing

              • css - CSS parser / stringifier.
              • strip-json-comments - Strip comments from JSON.
              • marked - A markdown parser and compiler built for speed.
              • js-yaml - Very fast YAML parser.
              • URI.js - URL mutation.
              • JSONStream - Streaming JSON.parse and stringify.
              • csv-parser - Streaming CSV parser that aims to be faster than everyone else.
              • excel-stream - Streaming Excel spreadsheet to JSON parser.
              • parse5 - Fast full-featured spec compliant HTML parser.
              • htmlparser2 - Forgiving HTML/XML parser.
              • PostCSS - Framework for CSS postprocessors, to modify CSS.
              • PEG.js - Simple parser generator that produces fast parsers with excellent error reporting.

              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 milisecond conversion utility.
              • pretty-error - Errors with less clutter.
              • humanize - Data formatter for human readability.
              • node-read - Extract readable content from any page.

              Compression

              • Archiver - Streaming interface for archive generation, supporting ZIP and TAR.
              • decompress-zip - Unzip.
              • tar-stream - Streaming tar parser and generator. Also see tar-fs.
              • decompress - A pluggable decompression module with support for tar, tar.gz and zip files out of the box.

              Network

              • get-port - Get an available port.
              • ipify - Get your public IP address.

              Static site generators

              • Metalsmith - An extremely simple, pluggable static site generator.
              • Wintersmith - Flexible, minimalistic, multi-platform static site generator.
              • Assemble - Static site generator for Node.js, Grunt.js, and Yeoman.

              Content management systems

              • KeystoneJS - CMS and web application platform built on Express and MongoDB.
              • Calipso - A simple content management system, built along similar themes to Drupal and Wordpress, that is designed to be fast, flexible and simple.
              • Apostrophe2 - A content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB.

              Forum

              • nodeBB - A better forum platform for the modern web.

              Blogging

              • ghost - Simple, powerful publishing platform that allows you to share your story with the world.
              • Hexo - Fast, simple and powerful blogging framework.

              Database

              • Drivers </li>
              • ODM / ORM
                • Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
                • JugglingDB - Multi-database ORM with a common API. Supports Redis, PostgreSQL, MongoDB, MySQL, SQLite, Neo4j, memory, and more.
                • Mongoose - Elegant MongoDB object modeling.
                • Sequelize - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL.
                • Waterline - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
                • </ul> </li>
                • Query builder
                  • Knex - A query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.
                  • </ul> </li> </ul>

                    Testing

                    • tape - TAP-producing test harness.
                    • Mocha - A feature-rich test framework making asynchronous testing simple and fun.
                    • loadtest - Run load tests for your web application, with an API for automation.
                    • istanbul - A code coverage tool that computes statement, line, function and branch coverage with module loader hooks to transparently add coverage when running tests.
                    • Sinon.JS - Test spies, stubs and mocks.
                    • Karma - Executes code in multiple real browsers.

                    Benchmarking

                    • Benchmark.js - A robust benchmarking library that works on nearly all JavaScript platforms, supports high-resolution timers, and returns statistically significant results.
                    • matcha - A caffeine driven, simplistic approach to benchmarking.

                    Minifiers

                    Authentication

                    • Passport - Simple, unobtrusive authentication.
                    • everyauth - Authentication and authorization (password, 非死book, & more) for your Connect and Express apps.
                    • passwordless - Token-based authentication middleware for Express allowing authentication without passwords.

                    Node.js management

                    • n - Node.js version management.
                    • nave - Virtual Environments for Node.js.
                    • nodeenv - A Node.js virtual environment compatible to Python's virtualenv.

                    Email

                    Polyfills

                    Natural language processing

                    • natural - A general natural language facility.
                    • retext - An extensible natural language system.
                    • leven - Measure the difference between two strings using the Levenshtein distance algorithm.

                    Process management

                    • node-windows - Run scripts as a native Windows service and log to the Event viewer.
                    • 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.
                    • forever - A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
                    • supervisor - Restart scripts when they crash or restart when a *.js file changes.
                    • PM2 - Advanced Process Manager.
                    • Phusion Passenger - Friendly process manager that integrates directly into Nginx.

                    AST

                    • Acorn - A tiny, fast JavaScript parser.
                    • Rocambole - Recursively walk and transform JavaScript AST.

                    Weird

                    Miscellaneous

                    • multiline - Multiline strings in JavaScript.
                    • opn - Opens stuff like websites, files, executables.
                    • semver - semver parser.
                    • cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
                    • require-uncached - Require a module bypassing the cache.
                    • Faker.js - Generate massive amounts of fake data.
                    • Bottleneck - A powerful rate limiter that makes throttling easy.
                    • stringify-object - Stringify an object/array like JSON.stringify just without all the double-quotes.
                    • strip-bom - Strip UTF-8 byte order mark (BOM) from a string/buffer/stream.
                    • shelljs - Portable Unix shell commands.
                    • nan - A header file filled with macro and utility goodness for making add-on development for across Node.js versions easier.
                    • ssh2 - An SSH2 client module.
                    • lazy-req - Require modules lazily.
                    • webworker-threads - Lightweight Web Worker API implementation with native threads.
                    • 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.
                    • common-errors - Common error classes and utility functions.

                    Resources

                    Tutorials

                    Discovery

                    • node-modules.com - An alternative npm search engine with a more intelligent and personal results ranking.

                    Articles

                    Newsletters

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

                    Videos

                    Podcasts

                    Books

                    Blogs

                    • Node.js blog
                    • HowToNode - Teaching how to do various tasks in Node.js as well as teach fundamental concepts that are needed to write effective code.

                    Courses

                    Cheatsheets

                    Tools

                    • GitHub Linker - Chrome extension that linkifies dependencies in package.json on GitHub.

                    Miscellaneous

                    • nodebots - Robots powered by JavaScript.

                    Contribute

                    Contributions welcome! Read the contribution guidelines first.

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