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

  •        10

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.

https://github.com/alibaba/coobjc

Tags
Implementation
License
Platform

   




Related Projects

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.

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

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.

Simple Actor

  •    

Simple Actor is simple library for actor-based programming that based on Thread, SynchronizationContext, async/await, and IObservable.


curio - Curio - The Small Coroutine Library You Were Warned About

  •    Python

Curio is a library of building blocks for performing concurrent I/O and common system programming tasks such as launching subprocesses, working with files, and farming work out to thread and process pools. It uses Python coroutines and the explicit async/await syntax introduced in Python 3.5. Its programming model is based on cooperative multitasking and existing programming abstractions such as threads, sockets, files, subprocesses, locks, and queues. You'll find it to be small, fast, and fun. Curio has no third-party dependencies and does not use the standard asyncio module. Most users will probably find it to be a bit too-low level--it's probably best to think of it as a library for building libraries. Although you might not use it directly, many of its ideas have influenced other libraries with similar functionality.

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.

ecmascript-asyncawait - Async/await for ECMAScript

  •    HTML

The introduction of Promises and Generators in ECMAScript presents an opportunity to dramatically improve the language-level model for writing asynchronous code in ECMAScript. The spec text can be found here. This proposal is implemented in a regenerator which can compile ES5 code containing async and await down to vanilla ES5 to run in existing browsers and runtimes.

Amarok Framework Library

  •    DotNet

This framework library is an attempt to take advantage of the actor/agent programming model for standalone desktop applications. Most of the concepts are inspired by the actor model, Microsoft Robotics CCR and the TPL Dataflow library.

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.

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.

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.

pykka - Pykka is a Python implementation of the actor model, which makes it easier to build concurrent applications

  •    Python

Pykka is a Python implementation of the actor model. The actor model introduces some simple rules to control the sharing of state and cooperation between execution units, which makes it easier to build concurrent applications. An actor is an execution unit that executes concurrently with other actors.

libaco - A blazing fast and lightweight C asymmetric coroutine library 💎 ⛅🚀⛅🌞

  •    C

libaco - A blazing fast and lightweight C asymmetric coroutine library. Asymmetric COroutine & Arkenstone is the reason why it's been named aco.

actor-framework - An Open Source Implementation of the Actor Model in C++

  •    C++

CAF is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more. The easiest way to build CAF is to use the configure script. Other available options are using CMake directly or SNocs.

kotlin-coroutines-retrofit - Kotlin Coroutines await() extension for Retrofit Call

  •    Kotlin

Based on kotlinx.coroutines implementation. NOTE: All examples in this README use runBlocking to build coroutine but it is only useful for testing or examples.

coroutine - A asymmetric coroutine library for C.

  •    C

It's an asymmetric coroutine library (like lua). You can use coroutine_open to open a schedule first, and then create coroutine in that schedule.