Node.js框架、库、资源集合:Awesome Node.js

jopen 9年前

Application Servers

Application Server is an environment to run and manage multiple applications.

  • Impress - Impressive multipurpose scalable Application Server optimized for high load API and web applications.

Async Control Flow

Libraries that help you manage asyncronous control flow and avoid callback hell.

  • Callback-based:
    • Async - Utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
    • each-async - Async concurrent iterator like forEach.
    • node-seq - Chainable asynchronous flow control for node.js with sequential and parallel primitives and pipeline-style error handling.
    </li>
  • Promise-based (Promises/A+):
    • Bluebird - Bluebird is a fully featured promise library with focus on innovative features and performance.
    • Q - Full-featured promise library with large API covering any situation you may encounter.
    • RSVP.js - Lightweight, but still compliant, promise library.
    • when.js - Rock solid, battle tested promise library.
    • </ul> </li>
    • Fibers-base (node-fibers):
      • asyncawait - Inspired by C# async/await feature, implementation of the same pattern using fibers.
      • </ul> </li>
      • Generator-based:
        • Co - Generator based flow-control goodness for nodejs and the browser.
        • suspend - Generator-based control flow that plays nice with callbacks, promises, and thunks.
        • </ul> </li> </ul>

          Authentication and OAuth

          Libraries for implementing authentications schemes.

          • everyauth - Authentication and authorization (password, 非死book, & more) for your Connect and Express apps.
          • ldapjs - Pure JavaScript, from-scratch framework for implementing LDAP clients and servers.
          • Lockit - Full featured authentication solution for Express.
          • oauth-signature-js - OAuth 1.0a signature generator
          • PassportJS - Simple authentication middleware framework.
          • passwordless - Token-based authentication middleware for Express allowing authentication without passwords.

          Build Tools

          Libraries for building and task running

          • Browserify - Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
          • Grunt.js - A task runner to ease epetitive tasks like unit testing, compilation and so on.
          • Gulp.js - A streaming build system which use of streams and code-over-configuration.
          • Nodemon - A dev utility that monitor any changes in source and automatically restart server.

          Communication

          • BinaryJS - BinaryJS is bidrectional realtime binary data with binary websockets
          • Primus - An abstraction layer for real-time frameworks to prevent module lock-in.
          • Socket.IO - Websocket framework for Node and Javascript.
          • SocketCluster - Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
          • SockJS - Websocket emulation.
          • Straw - Real-time dataflow framework.

          Content Management System

          • Calipso - Calipso is a simple CMS, built along similar themes to Drupal and Wordpress.
          • KeystoneJS - Node.js CMS and web application platform built on Express and MongoDB.

          Database Drivers

          Libraries for connecting and operating databases

          Debugging Tools

          Tools for debugging Node applications

          • cf-node-debug - Proxy to aid in debugging node running on a PaaS.
          • debug - Tiny debugging utility.
          • jstrace - Dynamic tracing for JavaScript, similar to dtrace, ktap etc.
          • longjohn - Longer stack traces for Node.
          • node-inspector - Node.js debugger based on Blink Developer Tools.
          • Nodev - Tool for easier debugging based on nodemon and node-inspector.
          • stackman - Enhance an error stacktrace with code excerpts and other goodies.
          • Theseus - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree.
          • TraceGL - Transforms your JavaScript, injecting monitoring code that produces a log of everything that happens.
          • TypesJs - Easy type checking, for Node & browsers.
          • vstream - Instrumentable streams mix-ins to inspect a pipeline of streams.

          Documentation

          Libraries for generating project documentation.

          • Docco - Docco is a quick-and-dirty documentation generator, written in Literate CoffeeScript.
          • dox - JavaScript documentation generator for node using markdown and jsdoc.
          • Groc - Documentation generation, in the spirit of literate programming.

          Environment Management

          Libraries for Node version and environment management.

          • n - Node version management.
          • nave - Virtual Environments for Node.
          • nodeenv - Virtual environment for Node.js & integrator with virtualenv.
          • nvm - Node Version Manager (does not require prior installation of node).

          Files and MIME Type Manipulation

          • PDFKit - A JavaScript PDF generation library for Node and browser.

          Forms

          Libraries for deal with forms and form data

          Integrated Development Environments

          IDEs and Editors for development

          • Atom - The hackable editor by GitHub
          • Brackets - An open source code editor for the web, written in JavaScript, HTML and CSS.
          • Cloud Commander - Web file manager. Has editor and console. Allows you to develop web applications, sites etc.
          • Cloud9 - Web editor with collaboration tools.
          • CmdEr - Not really and IDE, but a great "lovely console emulator package for Windows"
          • Enide - Node Eclipse IDE with Nodeclipse plugin.
          • InteliJIDEA - Fast Node plugin for InteliJ.
          • Notepad++ - Notepad++ is a free source code editor and Notepad replacement that supports several languages.
          • Visual Studio - With Node.js Tools for Visual Studio (Supports editing, IntelliSense, profiling, npm, TypeScript, debugging locally and remotely on Windows/MacOS/Linux)
          • Webstorm - "Create great websites and applications in a great IDE. The best JavaScript IDE and HTML editor is at your service."

          Logging

          Tools for generating and working with log files.

          • Bunyan - A simple and fast JSON logging module for node.js services.
          • caterpillar - A logging system that can log and pipe the output off to different locations.
          • intel - A comprehensive logging library (handlers, filters, formatters, console injection).
          • Log.io - Real time logging facility on the browser.
          • tracer - A powerful and customizable logging library for node.js.
          • winston - A multi-transport async logging library.

          ORM

          Libraries that implement Object-Relational Mapping or datamapping techniques.

          • Mongoose - Almost an ORM for mongodb.
          • Node-orm2 - Another Relational Object Mapper.
          • Sequelize - Sequelize library provides easy access to MySQL, MariaDB, SQLite or PostgreSQL databases.
          • Waterline - Datastore-agnostic tool that dramatically simplifies interaction with one or more databases.

          Package Management

          Libraries for package and dependency management.

          • Duo - A next-generation package manager for the front-end.
          • npm - Default package manager. Installs, publishes and manages node programs.

          Rate Limiting

          Libraries that help restrict the frequency of certain actions.

          • Bottleneck - A powerful rate limiter that makes throttling easy.

          RESTful API

          Libraries for developing RESTful APIs.

          • Heimdall - REST API Guardian for Express.
          • Node-restify - A node.js module built specifically to build correct REST web services.
          • Sails - MVC framework which generates a RESTful JSON API.

          Science

          Things some awesome crazy people are doing!

          • BitcoinJS - Clean, readable, proven Bitcoin library.
          • Breach - Modular and hackable browser written in JavaScript.
          • 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.
          • js-git - JavaScript implementation of Git.
          • NodeOS - The first operating system powered by npm.
          • PDFKit - PDF generation library.
          • peercast - Stream a torrent video to Chromecast.
          • peerflix - Streaming torrent client.
          • peerwiki - All of Wikipedia on BitTorrent.
          • turf - Modular geospatial processing and analysis engine.
          • webtorrent - Streaming torrent client for Node.js and the browser.

          Templating

          Libraries and tools for templating and lexing.

          • ECT - "Fastest JavaScript template engine with embedded CoffeeScript syntax" as they say (benchmark proof).
          • 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 - Handful node template engine.
          • nunjucks - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
          • Swig - A simple, powerful, and extendable JavaScript Template Engine.

          Testing

          Testing frameworks.

          • chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
          • Concrete - Continuous integration server.
          • Expresso - TDD framework for Node.
          • Jasmine - Simple Behavioral tests for Node and Javascript.
          • Jezebel - A REPL and continuous test runner for Node.js Jasmine tests.
          • mocha - Mocha is a feature-rich JavaScript test framework running on node.js and the browser, making asynchronous testing simple and fun.
          • Mochify - TDD with Browserify, Mocha, PhantomJS and WebDriver.
          • NodeUnit - Simple syntax unit test tool.
          • ready.js - Continuous javascript integration tool.
          • should.js - BDD style assertions for node.js -- test framework agnostic.
          • sinon - Standalone test spies, stubs and mocks for JavaScript.
          • tape - tap-producing test harness for node and browsers.

          Tools for building CLIs

          Libraries and tools which support you by building Command-Line Interfaces.

          • blessed - A curses-like library for node.js.
          • chalk - Terminal string styling done right
          • cli-spinner - A simple spinner for node cli.
          • cli-table - Pretty unicode tables for the CLI with Node.JS
          • cli - Rapidly build command line apps with node.
          • colors.js - get colors in your node.js console like what.
          • commander.js - The complete solution for node.js command-line interfaces, inspired by Ruby's commander.
          • configstore - Easily load and persist config without having to think about where and how.
          • Inquirer - A collection of common interactive command line user interfaces. Ask questions, parsing, validating answers, managing hierarchical prompts and providing error feedback.
          • log-symbols - Colored symbols for various log levels.https://github.com/sindresorhus/log-symbols
          • minimist - Simple module for command line arguments parsing.
          • nomnom - Option parser for node with generated usage and commands.
          • read - For reading user input from stdin.
          • terminal-menu - retro ansi terminal menus for serious 80s technicolor business.
          • text-table - generate borderless text table strings suitable for printing to stdout.

          Web Frameworks

          Web development frameworks.

          • Derby - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers. </li>
          • Express - A minimal and flexible node.js web application framework.
          • Flatiron - An adaptable framework for building modern web applications.
          • Hapi - A rich framework for building applications and services.
          • HuntJS - event driven framework for building clustered webservers, telnet and background applications with mongoose or sequilize as data storage.
          • Interfake - Rapid prototyping framework for making mock HTTP APIs, with a Node, command-line and HTTP interface.
          • Koa - A framework which aims to be a smaller, more expressive, and more robust foundation for web applications.
          • LoopBack - Powerful Node.js framework for creating APIs and easily connecting to backend data sources.
          • Meteor - A platform that has strong features such as live page update, sync and hopt code pushes.
          • Restify - A node framework built specifically to enable you to build correct REST web services.
          • SailsJS - An MVC web framework with a modern twist, supporting WebSockets, streams, and a data-driven API.
          • Totaljs - Friendly responsive design web application framework for node.
          • Catberry - Framework with Flux architecture, isomorphic web-components and progressive rendering.
          • </ul>

            Content Management System

            • Calipso - Calipso is a simple CMS, built along similar themes to Drupal and Wordpress.
            • KeystoneJS - Node.js CMS and web application platform built on Express and MongoDB.

            Miscellaneous

            Miscellaneous Tools which doesn't fit to the other categories.

            • agenda - Lightweight job scheduling on MongoDB.
            • atom-shell - Cross-platform desktop application shell.
            • cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
            • common-errors - Common error classes and utility functions.
            • Faker.js - Generate massive amounts of fake data.
            • Github Linker - Chrome extension that linkifies dependencies in package.json on GitHub.
            • lazy-req - Require modules lazily.
            • multiline - Multiline strings in JavaScript.
            • nan - A header file filled with macro and utility goodness for making add-on development for across Node.js versions easier.
            • Node-Bell - Real-time anomalies detection for periodic time series.
            • 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.
            • opn - Opens stuff like websites, files, executables.
            • require-uncached - Require a module bypassing the cache.
            • semver - semver parser.
            • shelljs - Portable Unix shell commands.
            • ssh2 - An SSH2 client module.
            • 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.
            • webworker-threads - Lightweight Web Worker API implementation with native threads.

            Tutorials

            Books

            Blogs

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

            项目主页:http://www.open-open.com/lib/view/home/1435634980216