Bluebird.swift - Promise/A+, Bluebird inspired, implementation in Swift 4.2

  •        1

Using Bluebird in production? Let me know with a Pull Request or an Issue.



Related Projects


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

request-promise - The simplified HTTP request client 'request' with Promise support

  •    Javascript

The simplified HTTP request client 'request' with Promise support. Powered by Bluebird.Request and Bluebird are pretty awesome, but I found myself using the same design pattern. Request-Promise adds a Bluebird-powered .then(...) method to Request call objects. By default, http response codes other than 2xx will cause the promise to be rejected. This can be overwritten by setting options.simple = false.

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.

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.

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

suspend - Callback-free control flow for Node using ES6 generators.

  •    Javascript

Generator-based control-flow for Node enabling asynchronous code without callbacks, transpiling, or selling your soul. Suspend is designed to work seamlessly with Node's callback conventions, promises, and thunks, but is also compatible with code that follows other conventions.

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.

taskr - A fast, concurrency-focused task automation tool.

  •    Javascript

Taskr is a highly performant task runner, much like Gulp or Grunt, but written with concurrency in mind. With Taskr, everything is a coroutine, which allows for cascading and composable tasks; but unlike Gulp, it's not limited to the stream metaphor. Taskr is extremely extensible, so anything can be a task. Our core system will accept whatever you throw at it, resulting in a modular system of reusable plugins and tasks, connected by a declarative taskfile.js that's easy to read.

node-portfinder - A simple tool to find an open port or domain socket on the current machine

  •    Javascript

If portfinder.getPortPromise() is called on a Node version without Promise (<4), it will throw an Error unless Bluebird or any Promise pollyfill is used.By default portfinder will start searching from 8000. To change this simply set portfinder.basePort.

throat - Throttle a collection of promise returning functions

  •    Javascript

Throttle the parallelism of an asynchronous, promise returning, function / functions. This has special utility when you set the concurrency to 1. That way you get a mutually exclusive lock. This returns a function that acts a bit like a lock (exactly as a lock if concurrency is 1).

Basis - Pure Declarative Programming in Swift, Among Other Things

  •    Swift

The Basis is an exploration of pure declarative programming and reasoning in Swift. It by no means contains idiomatic code, but is instead intended to be a repository for structures and ideas grounded in theory and mathematics. Present in this repository are the necessary components to handle system interaction, control, data flow, and a number of extensions and improvements to the Swift Standard Library and its structures. Higher-level APIs and structures are generally excluded from the Basis to be implemented in other libraries. Swift provides an excellent opportunity to not just witness, but actually understand the formalization of many seemingly "complex" and abstract algebraic structures without having to learn Haskell or ML or any of the other famous FP languages. The documentation of types in this repository serves as a way to deserialize a lot of the complex terms and jargon you may come across in these languages. In this way, the Basis can be regarded as an encyclopedia of common techniques and practices rather than a simple tutorial. As such, if the documentation is too dense or unreadable, it means this library is failing one of its unit tests! Clarification or rewrites of documentation to serve the broader community are a priority and a promise.

queue - Asynchronous function queue with adjustable concurrency

  •    Javascript

Asynchronous function queue with adjustable concurrency. This module exports a class Queue that implements most of the Array API. Pass async functions (ones that accept a callback or return a promise) to an instance's additive array methods. Processing begins when you call q.start().

Zewo - Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines

  •    Swift

Zewo is a lightweight library for web applications in Swift.Zewo is not a web framework. Zewo is a lightweight library for web applications in Swift. Most server-side Swift projects use Grand Central Dispatch (GCD) as the concurrency library of choice. The drawback of using GCD is that its APIs are asynchronous. With async code comes callback hell and we all know it, it's no fun.