Code Monkey home page Code Monkey logo

awesome-nodejs's Introduction

Awesome Node.js

A curated list of astonishing Node.js frameworks, libraries and resources. Inspired by awesome-php and awesome-python.

Your pull requests are very welcome! Let's make this the awesomest resource for Node!

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.
  • 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.
  • Fibers-base (node-fibers):
    • asyncawait - Inspired by C# async/await feature, implementation of the same pattern using fibers.
  • 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.

Authentication and OAuth

Libraries for implementing authentications schemes.

  • everyauth - Authentication and authorization (password, facebook, & 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 - Twitter'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.
  • 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.

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

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesome and awesome-awesomeness projects.

Contributing

Chinese awesome-nodejs version by @ueqt.

Your contributions are always welcome!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.