All Projects → Drakkar-Software → Async-Channel

Drakkar-Software / Async-Channel

Licence: LGPL-3.0 License
Python async multi-task communication library. Used by OctoBot project.

Programming Languages

python
139335 projects - #7 most used programming language
cython
566 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Async-Channel

Agency
Execution primitives for C++
Stars: ✭ 127 (+876.92%)
Mutual labels:  concurrency, parallelism
Chymyst Core
Declarative concurrency in Scala - The implementation of the chemical machine
Stars: ✭ 142 (+992.31%)
Mutual labels:  concurrency, parallelism
Hpx
The C++ Standard Library for Parallelism and Concurrency
Stars: ✭ 1,805 (+13784.62%)
Mutual labels:  concurrency, parallelism
golang-101
🍺 In-depth internals, my personal notes, example codes and projects. Includes - Thousands of codes, OOP, Concurrency, Parallelism, Goroutines, Mutexes & Wait Groups, Testing in Go, Go tool chain, Backend web development, Some projects including Log file parser using bufio.Scanner, Spam Masker, Retro led clock, Console animations, Dictionary pro…
Stars: ✭ 61 (+369.23%)
Mutual labels:  concurrency, parallelism
YACLib
Yet Another Concurrency Library
Stars: ✭ 193 (+1384.62%)
Mutual labels:  concurrency, parallelism
Go Concurrency
This repos has lots of Go concurrency, goroutine and channel usage and best practice examples
Stars: ✭ 84 (+546.15%)
Mutual labels:  concurrency, channels
Plasma
Plasma Programming Language
Stars: ✭ 133 (+923.08%)
Mutual labels:  concurrency, parallelism
Hamsters.js
100% Vanilla Javascript Multithreading & Parallel Execution Library
Stars: ✭ 517 (+3876.92%)
Mutual labels:  concurrency, parallelism
pygolang
Go-like features for Python and Cython. (mirror of https://lab.nexedi.com/kirr/pygolang)
Stars: ✭ 37 (+184.62%)
Mutual labels:  concurrency, channels
Util
A collection of useful utility functions
Stars: ✭ 201 (+1446.15%)
Mutual labels:  concurrency, parallelism
Phobos
The standard library of the D programming language
Stars: ✭ 1,038 (+7884.62%)
Mutual labels:  concurrency, parallelism
swift-futures
Demand-driven asynchronous programming in Swift
Stars: ✭ 32 (+146.15%)
Mutual labels:  concurrency, channels
Fucking Java Concurrency
🎏 Simple show cases of java concurrency problems, seeing 🙈 is believing 🐵
Stars: ✭ 779 (+5892.31%)
Mutual labels:  concurrency, parallelism
Imminent
A composable Futures library for Clojure
Stars: ✭ 88 (+576.92%)
Mutual labels:  concurrency, parallelism
React Native Threads
Create new JS processes for CPU intensive work
Stars: ✭ 527 (+3953.85%)
Mutual labels:  concurrency, parallelism
Floyd
The Floyd programming language
Stars: ✭ 133 (+923.08%)
Mutual labels:  concurrency, parallelism
Fetch
Simple & Efficient data access for Scala and Scala.js
Stars: ✭ 453 (+3384.62%)
Mutual labels:  concurrency, parallelism
Start
🔴 Functional task runner for Node.js
Stars: ✭ 478 (+3576.92%)
Mutual labels:  concurrency, parallelism
Pht
A new threading extension for PHP
Stars: ✭ 175 (+1246.15%)
Mutual labels:  concurrency, parallelism
java-multithread
Códigos feitos para o curso de Multithreading com Java, no canal RinaldoDev do YouTube.
Stars: ✭ 24 (+84.62%)
Mutual labels:  concurrency, parallelism

Async-Channel 2.0.13

Codacy Badge PyPI Github-Action-CI Build Status Coverage Status Doc Status Code style: black

Python multi-task communication library. Used by OctoBot project.

Installation

With python3 : pip install async-channel

Usage

Example

import async_channel.consumer as consumer
import async_channel.producer as producer
import async_channel.channels as channels
import async_channel.util as util

class AwesomeProducer(producer.Producer):
    pass

class AwesomeConsumer(consumer.Consumer):
    pass

class AwesomeChannel(channels.Channel):
    PRODUCER_CLASS = AwesomeProducer
    CONSUMER_CLASS = AwesomeConsumer

async def callback(data):
    print("Consumer called !")
    print("Received : " + data)

# Creates the channel
await util.create_channel_instance(AwesomeChannel, channels.Channels)

# Add a new consumer to the channel
await channels.Channels.get_chan("Awesome").new_consumer(callback)

# Creates a producer that send data to the consumer through the channel
producer = AwesomeProducer(channels.Channels.get_chan("Awesome"))
await producer.run()
await producer.send("test")

# Stops the channel with all its producers and consumers
# await channels.Channels.get_chan("Awesome").stop()

Developer documentation

On readthedocs.io

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].