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

  •        43

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.


concurrencpp - Modern concurrency for C++

  •    C++

concurrencpp is a tasking library for C++ allowing developers to write highly concurrent applications easily and safely by using tasks, executors and coroutines. By using concurrencpp applications can break down big procedures that need to be processed asynchronously into smaller tasks that run concurrently and work in a co-operative manner to achieve the wanted result. concurrencpp also allows applications to write parallel algorithms easily by using parallel coroutines. concurrencpp is a task-centric library. A task is an asynchronous operation. Tasks offer a higher level of abstraction for concurrent code than traditional thread-centric approaches. Tasks can be chained together, meaning that tasks pass their asynchronous result from one to another, where the result of one task is used as if it were a parameter or an intermediate value of another ongoing task. Tasks allow applications to utilize available hardware resources better and scale much more than using raw threads, since tasks can be suspended, waiting for another task to produce a result, without blocking underlying OS-threads. Tasks bring much more productivity to developers by allowing them to focus more on business-logic and less on low-level concepts like thread management and inter-thread synchronization.

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.

libfiber - The high performance coroutine library for Linux/FreeBSD/MacOS/Windows, supporting select/poll/epoll/kqueue/iocp/windows GUI

  •    C++

The libfiber project comes from the coroutine module of the acl project in lib_fiber directory of which. It can be used on OS platfroms including Linux, FreeBSD, MacOS, and Windows, which supports select, poll, epoll, kqueue, iocp, and even Windows GUI messages for different platfrom. With libfiber, you can write network application services having the high performance and large cocurrent more easily than the traditional asynchronus framework with event-driven model. What's more, with the help of libfiber, you can even write network module of the Windows GUI application written by MFC, wtl or other GUI framework on Windows in coroutine way. That's realy amazing. The libfiber supports many events including select/poll/epoll/kqueue/iocp, and Windows GUI messages.

hyperf - 🚀 A coroutine framework that focuses on hyperspeed and flexibility

  •    PHP

Hyperf is an extremely performant and flexible PHP CLI framework based on Swoole 4.5+, powered by the state-of-the-art coroutine server and a large number of battle-tested components. Aside from the decisive benchmark outmatching against PHP-FPM frameworks, Hyperf also distinct itself by its focus on flexibility and composability. Hyperf ships with an AOP-enabling dependency injector to ensure components and classes are pluggable and meta programmable. All of its core components strictly follow the PSR standards and thus can be used in other frameworks. Hyperf's architecture is built upon the combination of Coroutine, Dependency injection, Events, Annotation, AOP (aspect-oriented programming). Core components provided by Hyperf can be used out of the box in coroutine context. The set includes but not limited to: MySQL coroutine client, Redis coroutine client, WebSocket server and client, JSON RPC server and client, gRPC server and client, Zipkin/Jaeger (OpenTracing) client, Guzzle HTTP client, Elasticsearch client, Consul client, ETCD client, AMQP component, Apollo configuration center, Aliyun ACM, ETCD configuration center, Token bucket algorithm-based limiter, Universal connection pool, Circuit breaker, Swagger, Swoole Tracker, Snowflake, Simply Redis MQ, RabbitMQ, NSQ, Nats, Seconds level crontab, Custom Processes, etc. Be assured Hyperf is still a PHP framework. You will also find familiar packages such as Middleware, Event Manager, Coroutine optimized Eloquent ORM (And Model Cache!), Translation, Validation, View engine (Blade/Smarty/Twig/Plates/ThinkTemplate) and more at your command.

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.

async-javascript-cheatsheet - Cheatsheet for promises and async/await.

  •    HTML

This cheatsheet contains a summary of the Mastering Asynchronous JavaScript course at Frontend Armory. Want to deepen your understanding of promises, async and await? The course will guide you there through 47 live examples and exercises. To get started, just click through to the first lesson: Why async, anyway?.

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.

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.

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.

actor-boilerplate - A starting point for web apps based on the actor model.

  •    TypeScript

A starting point for web apps based on the actor model. Both this build system and the actor-helpers library are provided by us for convenience. You are encouraged to explore your own approach to actorize your code.

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.

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.

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.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.