Bluebird - Promise library with unmatched performance.

  •        149

Bluebird is a fully featured promise library with focus on innovative features and performance. Bluebird is built with the following design principles in mind:

  • Pragmatic and not theoretical. - Bluebird will always pick the pragmatic route vs the theoretically elegant one when there is a conflict. The library's API was created based on real-life use cases and after a lot of consideration.
  • Fully featured without bloat - Bluebird provides all the tools and utilities needed to realize a highly expressive and fluent DSL for asynchronous JavaScript without suffering from bloat by avoiding incorporating features that are solely motivated by theoretical arguments, have extremely narrow applicability or have limited synergy and composability with existing features.
  • Easy to debug - A major consequence of choosing pragmatism over theoretical elegancy, a property that among promise libraries taken to this extent is unique to bluebird.
    • Bluebird ships with the best cross-platform long stack traces out there and a warning system. This helps you recognize common and devastating promise usage mistakes early before they lead to hard to debug code later.
    • Unhandled errors are not silently swallowed by default but reported along with helpful stack traces where applicable. All of this is of course configurable.
  • Zero overhead abstraction - In server-side applications the performance of a promise implementation matters. Bluebird's server side performance is measured with highly relevant realistic end-to-end macro benchmarks and consistently comes out on top. We understand that if bluebird is as close to a zero cost abstraction as possible, developers won't be tempted to short-circuit and absorb complexity themselves.
  • Runs everywhere - Bluebird runs on pretty much every platform. This makes bluebird ideal for projects who care about providing consistent cross-platform and cross-version experience. It runs on old IE, it has even been known to run on Netscape 7.
  • Spec compatible - bluebird can work as a drop-in replacement for native promises for an instant performance boost. It passes the Promises/A+ test suite and is fully spec compliant.
  • https://github.com/petkaantonov/bluebird
    http://bluebirdjs.com/

    Tags
    Implementation
    License
    Platform

       




    Related Projects

    node-promise-mysql

    •    Javascript

    Promise-mysql is a wrapper for mysqljs/mysql that wraps function calls with Bluebird promises. Usually this would be done with Bluebird's .promisifyAll() method, but mysqljs/mysql's footprint is different to that of what Bluebird expects. At the minute only the standard connection (using .createConnection()) and the pool (using .createPool()) is supported. createPoolCluster is not implemented yet.

    httpinvoke - A no-dependencies HTTP client library for browsers and Node

    •    Javascript

    A no-dependencies HTTP client library for browsers and Node.js with a promise-based or Node.js-style callback-based API to progress events, text and binary file upload and download, partial response body, request and response headers, status code. Any one, two or three arguments can be skipped, except the url.


    deferred - Modular and fast Promises implementation for JavaScript

    •    Javascript

    Deferred is complete, one of the fastest and natural promise implementation in JavaScript, with Deferred you can write clear maintainable code that takes maximum out of asynchronicity, in fact due to multi-dimensional nature of promises (chaining and nesting) you're forced to program declaratively. With Deferred you also can: Process collections of deferred calls. Handle Node.js asynchronous functions. Limit concurrency of scheduled tasks. Emit progress events or stream results partially on the go.

    promise-polyfill - Lightweight ES6 Promise polyfill for the browser and node. A+ Compliant

    •    Javascript

    Lightweight ES6 Promise polyfill for the browser and node. Adheres closely to the spec. It is a perfect polyfill IE, Firefox or any other browser that does not support native promises. For API information about Promises, please check out this article HTML5Rocks article.

    co - The ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc)

    •    Javascript

    Generator based control flow goodness for nodejs and the browser, using promises, letting you write non-blocking code in a nice-ish way.co@4.0.0 has been released, which now relies on promises. It is a stepping stone towards the async/await proposal. The primary API change is how co() is invoked. Before, co returned a "thunk", which you then called with a callback and optional arguments. Now, co() returns a promise.

    promise-fun - Promise packages, patterns, chat, and tutorials

    •    

    I intend to use this space to document my promise modules, useful promise patterns, and how to solve common problems. For now though, you can see all my promise modules below.Star this repo to show your interest, so I can know whether to prioritize this work.

    chai-as-promised - Extends Chai with assertions about promises.

    •    Javascript

    Chai as Promised extends Chai with a fluent language for asserting facts about promises. Notice: either return or notify(done) must be used with promise assertions. This can be a slight departure from the existing format of assertions being used on a project or by a team. Those other assertions are likely synchronous and thus do not require special handling.

    posterus - Composable async primitives (futures) with cancelation, control over scheduling, and coroutines

    •    Javascript

    Posterus is a library of promise-like asynchronous primitives (futures) that support cancelation. Futures compose just like promises, but can also be cleanly shut down, aborting pending operations and freeing resources. Posterus also exposes its inner scheduling capabilities, allowing you to "opt out" of asynchrony when needed (motivating example).

    AwaitKit - The ES8 Async/Await control flow for Swift

    •    Swift

    AwaitKit is a powerful Swift library inspired by the Async/Await specification in ES8 (ECMAScript 2017) which provides a powerful way to write asynchronous code in a sequential manner. Internally it uses PromiseKit to create and manage promises.

    Awaity.js - A functional, lightweight alternative to bluebird.js, built with async / await in mind.

    •    Javascript

    A functional, lightweight alternative to bluebird.js, built with async / await in mind. Functional utility library for async / await Think lodash for promises.

    p-progress - Create a promise that reports progress

    •    Javascript

    Useful for reporting progress to the user during long-running async operations.Same as the Promise constructor, but with an appended progress parameter in executor.

    Promises, Promises...

    •    Javascript

    A self-contained JavaScript implementation of the Promises/A+ specification (and Deferred provider), suitable for inclusion in larger libraries and projects.

    Hydra - Lightweight full-featured Promises, Async & Await Library in Swift

    •    Swift

    A more detailed look at how Hydra works can be found in ARCHITECTURE file or on Medium.

    es6-promise - A polyfill for ES6-style Promises

    •    Javascript

    A lightweight library that provides tools for organizing asynchronous code