Async Nexus
===========
.. image:: https://img.shields.io/pypi/v/async_nexus.svg
:target: https://pypi.python.org/pypi/async-nexus
.. image:: https://readthedocs.org/projects/async-nexus/badge/?version=latest
:target: https://async-nexus.readthedocs.io/en/latest/?version=latest
:alt: Documentation Status
This is a library to manage the transfer of data using lightweight Event
objects in asynchronous Python programs. It allows the creation of
loosely-coupled programs using async coroutines and generators to
create/handle events. This replaces the need for traditional callbacks
and code that blocks waiting for something to happen, both of which
increase coupling between modules (which is bad in medium and large
programs).
The Async Nexus library (henceforth referred to by its package name)
provides convenience classes for common event-related activities such as
`async_nexus.Timer`. It also provides various abstract
`async_nexus.EventSource` subclasses to allow the creation of
application-specific classes that translate problem-domain events into
`async_nexus.Event` objects, as well as fully usable classes for
interacting with libraries like 0mq (ZeroMQ) and other message brokers.
``async_nexus`` is designed to let you structure your programs and their
interactions in the way that you want. It uses a pluggable event
architecture with which you can change the way that events are created
and consumed, and add a variety of ultimate sources, without having to
redesign your program as it grows.
* Free software: MIT license
* Documentation: https://async-nexus.readthedocs.io
* Git repository: https://github.com/unixnut/async-nexus
Features
--------
* TODO
Credits
-------
(C)2025 Alastair Irvine <alastair@plug.org.au>
This package was created with Cookiecutter_ and the `unixnut/cookiecutter-pypackage`_ project template.
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`unixnut/cookiecutter-pypackage`: https://github.com/unixnut/cookiecutter-pypackage
=======
History
=======
0.1.0 (2025-06-10)
------------------
Project inception. This idea has been cooking in my head for a while so
it's great to finally get started on developing it!
1.0.2 (2025-07-30)
------------------
* First release on PyPI.
Raw data
{
"_id": null,
"home_page": "https://github.com/unixnut/async-nexus",
"name": "async-nexus",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "async_nexus",
"author": "Alastair Irvine",
"author_email": "alastair@plug.org.au",
"download_url": null,
"platform": null,
"description": "\nAsync Nexus\n===========\n\n\n.. image:: https://img.shields.io/pypi/v/async_nexus.svg\n :target: https://pypi.python.org/pypi/async-nexus\n\n.. image:: https://readthedocs.org/projects/async-nexus/badge/?version=latest\n :target: https://async-nexus.readthedocs.io/en/latest/?version=latest\n :alt: Documentation Status\n\n\nThis is a library to manage the transfer of data using lightweight Event\nobjects in asynchronous Python programs. It allows the creation of\nloosely-coupled programs using async coroutines and generators to\ncreate/handle events. This replaces the need for traditional callbacks\nand code that blocks waiting for something to happen, both of which\nincrease coupling between modules (which is bad in medium and large\nprograms).\n\nThe Async Nexus library (henceforth referred to by its package name)\nprovides convenience classes for common event-related activities such as\n`async_nexus.Timer`. It also provides various abstract\n`async_nexus.EventSource` subclasses to allow the creation of\napplication-specific classes that translate problem-domain events into\n`async_nexus.Event` objects, as well as fully usable classes for\ninteracting with libraries like 0mq (ZeroMQ) and other message brokers.\n\n``async_nexus`` is designed to let you structure your programs and their\ninteractions in the way that you want. It uses a pluggable event\narchitecture with which you can change the way that events are created\nand consumed, and add a variety of ultimate sources, without having to\nredesign your program as it grows.\n\n\n* Free software: MIT license\n* Documentation: https://async-nexus.readthedocs.io\n* Git repository: https://github.com/unixnut/async-nexus\n\n\nFeatures\n--------\n\n* TODO\n\nCredits\n-------\n\n(C)2025 Alastair Irvine <alastair@plug.org.au>\n\nThis package was created with Cookiecutter_ and the `unixnut/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`unixnut/cookiecutter-pypackage`: https://github.com/unixnut/cookiecutter-pypackage\n\n\n=======\nHistory\n=======\n\n0.1.0 (2025-06-10)\n------------------\n\nProject inception. This idea has been cooking in my head for a while so\nit's great to finally get started on developing it!\n\n1.0.2 (2025-07-30)\n------------------\n\n* First release on PyPI.\n\n\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Library to manage the transfer of data using lightweight Event objects in asynchronous Python programs.",
"version": "1.0.2",
"project_urls": {
"Homepage": "https://github.com/unixnut/async-nexus"
},
"split_keywords": [
"async_nexus"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "de3788004ef58f1bc0a5f75fe0b732e44d6b1f40055ee54c9eef300d4f0f54a9",
"md5": "9f80d199337ad5383fd6febce10ad4fc",
"sha256": "0efe6020f1df97c77229972b462f7fe244b166cb1ab99c80f62d33f3e4aaf4bb"
},
"downloads": -1,
"filename": "async_nexus-1.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "9f80d199337ad5383fd6febce10ad4fc",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6",
"size": 13958,
"upload_time": "2025-07-30T15:09:31",
"upload_time_iso_8601": "2025-07-30T15:09:31.818427Z",
"url": "https://files.pythonhosted.org/packages/de/37/88004ef58f1bc0a5f75fe0b732e44d6b1f40055ee54c9eef300d4f0f54a9/async_nexus-1.0.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-30 15:09:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "unixnut",
"github_project": "async-nexus",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "async-nexus"
}