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

  •        26

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.

https://github.com/tj/co

Tags
Implementation
License
Platform

   




Related Projects

may - rust stackful coroutine library

  •    Rust

Rust Stackful Coroutine Library. May is a high performance stackful coroutine library that can be thought of rust version goroutine. You can use it easily to design and develop massive concurrent programs in Rust.

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.


coobjc - coobjc provides coroutine support for Objective-C and Swift

  •    Objective-C

This library provides coroutine support for Objective-C and Swift. We added await method、generator and actor model like C#、Javascript and Kotlin. For convenience, we added coroutine categories for some Foundation and UIKit API in cokit framework like NSFileManager, JSON, NSData, UIImage etc. We also add tuple support in coobjc. Sequence of simple operations is unnaturally composed in the nested blocks. This "Callback hell" makes it difficult to keep track of code that is running, and the stack of closures leads to many second order effects.

async-io-demo - demo for rust asynchronous io: from mio to stackless coroutine

  •    Rust

2019 is approaching. The rust team keeps their promise about asynchronous IO: async is introduced as keywords, Pin, Future, Poll and await! is introduced into standard library. I have never used rust for asynchronous IO programming earlier, so I almost know nothing about it. However, I would use it for a project recently but couldn't find many documents that are remarkably helpful for newbie of rust asynchronous programming.

node-thunkify - Turn a regular node function into one which returns a thunk

  •    Javascript

Turn a regular node function into one which returns a thunk, useful for generator-based flow control such as co.

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

  •    Javascript

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

contra - :surfer: Asynchronous flow control with a functional taste to it

  •    Javascript

Feature requests will be considered on a case-by-case basis.Install using npm or bower. Or get the source code and embed that in a <script> tag.

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

node-fibers - Fiber/coroutine support for v8 and node.

  •    C++

Fibers, sometimes called coroutines, are a powerful tool which expose an API to jump between multiple call stacks from within a single thread. This can be useful to make code written for a synchronous library play nicely in an asynchronous environment. Note: node-fibers uses node-gyp for building. To manually invoke the build process, you can use node-gyp rebuild. This will put the compiled extension in build/Release/fibers.node. However, when you do require('fibers'), it will expect the module to be in, for example, bin/linux-x64-v8-3.11/fibers.node. You can manually put the module here every time you build, or you can use the included build script. Either npm install or node build -f will do this for you. If you are going to be hacking on node-fibers, it may be worthwhile to first do node-gyp configure and then for subsequent rebuilds you can just do node-gyp build which will be faster than a full npm install or node-gyp rebuild.

nimble - A really tiny functional JavaScript and async flow-control library

  •    Javascript

A really tiny functional JavaScript and async flow-control library

nimble - A really tiny functional JavaScript and async flow-control library

  •    Javascript

A really tiny functional JavaScript and async flow-control library

node-seq - Chainable asynchronous flow control for node

  •    Javascript

Seq is an asynchronous flow control library with a chainable interface for sequential and parallel actions. Even the error handling is chainable.Each action in the chain operates on a stack of values. There is also a variables hash for storing values by name.

drgarbagetools

  •    

Dr. Garbage Tools Project is a set of open source tools for control flow analysis of java programs, including Java Sourcecode Visualizer, Bytecode Visualizer and Control Flow Factory for generation and visualization of the various Control Flow Graphs. The tools are the result of a research project on the University of Oldenburg and have been developed by the Dr. Garbage Ltd. amp; Co KG.