Skip to main content

aioflows

Github Actions PyPI

Asynchronous actors framework


Documentation: https://aioflows.github.io

Source: https://github.com/apatrushev/aioflows


This project aims to create a support library for constructing asynchronous applications in Python, using the concept of structured data flows and actors. The current phase is purely a proof-of-concept and serves as a basis for discussion with colleagues and the community. It is not intended for use in any production or personal projects.

Minimal working example

import asyncio

from aioflows.simple import Printer, Ticker


async def start():
    await (Ticker() >> Printer()).start()


asyncio.run(start())

Udp echo example

import asyncio

from aioflows.network import Udp
from aioflows.simple import Printer, Tee


async def start():
    udp = Udp(local_addr=('127.0.0.1', 5353), reuse_port=True)
    await (udp >> Tee(Printer()) >> udp).start()


asyncio.run(start())

You can test it with socat:

socat - UDP:localhost:5353

Other examples

More examples can be found in src/examples.

Installation

  • local
pip install .
  • editable
pip install -e .
  • development
pip install -e .[dev]
  • examples dependencies
pip install -e .[examples]
  • all together
pip install -e .[dev,examples]
  • from github
pip install git+https://github.com/apatrushev/aioflows.git

Usual development steps

Run checks and tests:

inv isort flake test

Run examples (all ERRORCODE's should be 0/OK or timeout at the moment):

inv examples | grep ERRORCODE

Similar projects

I found existing solutions that are almost equal to this concept:

Metadata

Release files for aioflows 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for aioflows 0.2.0
File Interpreter ABI Platform Actions
aioflows-0.2.0-py3-none-any.whl Python 3 none any Details for aioflows-0.2.0-py3-none-any.whl

Release files / aioflows-0.2.0-py3-none-any.whl

Download URL aioflows-0.2.0-py3-none-any.whl
Size 15.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
70201e3e1e6e480b3dba72de790389d0ce2b090f9cf0ce4aecdc8e2453ad420c
BLAKE2b-256 checksum
How to use checksums
9ae847ffe1bb1f59fc74ccea463d7a3758fa6445bb4a4cb4f689b4d0c8c7d206
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Security for aioflows 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page