Asyncio-rpc: Remote procedure calling framework
===============================================
The Python package for the asyncio remote procedure calling
.. image:: https://github.com/nens/asyncio-rpc/actions/workflows/test.yml/badge.svg?branch=master
:target: https://github.com/nens/asyncio-rpc/actions/workflows/test.yml
.. image:: https://readthedocs.org/projects/asyncio-rpc/badge/?version=latest
:target: https://asyncio-rpc.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
* Free software: BSD license
* Documentation: https://asyncio-rpc.readthedocs.io.
Overview
========
Features
--------
- Asyncio RPC client/server
- Msgpack serialization with option to use own dataclasses (Python 3.8)
- Redis communication layer
- Other serialization methods and communication layers can be added
Examples
--------
The examples can be run from this directory, for the dataclass example
(using localhost as redis host):
>>> python3.8 -m examples.dataclass.server localhost
>>> python3.8 -m examples.dataclass.client localhost
Testing
-------
>>> docker-compose run pytest --cov=asyncio_rpc --cov-report=html
0.2.0 (2024-01-02)
------------------
- Dropped `aioredis` package, use `redis` package instead.
- Github actions for unit-tests & linting.
- Numpy is optional.
0.1.11 (2023-07-06)
-------------------
- Add support for RPC client graceful shutdown.
0.1.10 (2021-02-26)
-------------------
- Disabled logging errors for missing Asyncio futures
for subscriptions.
0.1.9 (2021-02-22)
------------------
- Bugfix: asyncio future that waits for return RPC message needs
to be created before sending RPC message to RPC server.
- Added debug logging statements.
0.1.8 (2021-02-05)
------------------
- Add numpy int32 and int64 serializer.
0.1.7 (2020-01-10)
------------------
- When a message from the client has not been received by
a server it raises a NotReceived exception instead of
an assert error.
0.1.6 (2019-12-30)
------------------
- Added pub/sub support to allow sending continuous updates
from the server for a client subscription
- Add slice serialization/deserialization support
0.1.5 (2019-12-23)
------------------
- Server.serve() methode respawns on internal tasks errors
- Better error handling in server.
0.1.4 (2019-10-03)
------------------
- Client now raises RPCTimeoutError if the result of a RPC call took to long to
be received.
- Client.serve() method respawns internal tasks on errors.
0.1.3 (2019-08-21)
------------------
- Verbose feedback on assertion error while trying to unpack dataclasses.
0.1.2 (2019-07-04)
------------------
- Fixed bug with bytes/str serialization/deserialization
0.1.1 (2019-04-29)
------------------
- Added channel override option in client.rpc_call
0.1.0 (2019-03-20)
------------------
- first pypi release
Raw data
{
"_id": null,
"home_page": "https://github.com/nens/asyncio-rpc",
"name": "asyncio-rpc",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "asyncio rpc",
"author": "Jelle Prins",
"author_email": "jelle.prins@nelen-schuurmans.nl",
"download_url": "https://files.pythonhosted.org/packages/7b/75/041f9ddf5dbe92265fe1750394944b55ee35dd7c7f1b6c83e4b084548852/asyncio_rpc-0.2.0.tar.gz",
"platform": null,
"description": "Asyncio-rpc: Remote procedure calling framework\n===============================================\n\nThe Python package for the asyncio remote procedure calling\n\n.. image:: https://github.com/nens/asyncio-rpc/actions/workflows/test.yml/badge.svg?branch=master\n :target: https://github.com/nens/asyncio-rpc/actions/workflows/test.yml\n\n.. image:: https://readthedocs.org/projects/asyncio-rpc/badge/?version=latest\n :target: https://asyncio-rpc.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\n\n* Free software: BSD license\n* Documentation: https://asyncio-rpc.readthedocs.io.\n\n\nOverview\n========\n\n\nFeatures\n--------\n - Asyncio RPC client/server\n - Msgpack serialization with option to use own dataclasses (Python 3.8)\n - Redis communication layer\n - Other serialization methods and communication layers can be added\n\n\nExamples\n--------\n\nThe examples can be run from this directory, for the dataclass example \n(using localhost as redis host):\n\n >>> python3.8 -m examples.dataclass.server localhost\n >>> python3.8 -m examples.dataclass.client localhost\n\n\nTesting\n-------\n >>> docker-compose run pytest --cov=asyncio_rpc --cov-report=html\n\n\n0.2.0 (2024-01-02)\n------------------\n\n- Dropped `aioredis` package, use `redis` package instead.\n\n- Github actions for unit-tests & linting.\n\n- Numpy is optional.\n\n0.1.11 (2023-07-06)\n-------------------\n\n- Add support for RPC client graceful shutdown.\n\n\n0.1.10 (2021-02-26)\n-------------------\n\n- Disabled logging errors for missing Asyncio futures \n for subscriptions.\n\n\n0.1.9 (2021-02-22)\n------------------\n\n- Bugfix: asyncio future that waits for return RPC message needs\n to be created before sending RPC message to RPC server.\n\n- Added debug logging statements.\n\n0.1.8 (2021-02-05)\n------------------\n\n- Add numpy int32 and int64 serializer.\n\n\n0.1.7 (2020-01-10)\n------------------\n\n- When a message from the client has not been received by \n a server it raises a NotReceived exception instead of\n an assert error.\n\n\n0.1.6 (2019-12-30)\n------------------\n\n- Added pub/sub support to allow sending continuous updates\n from the server for a client subscription\n\n- Add slice serialization/deserialization support\n\n\n0.1.5 (2019-12-23)\n------------------\n\n- Server.serve() methode respawns on internal tasks errors\n\n- Better error handling in server.\n\n\n0.1.4 (2019-10-03)\n------------------\n\n- Client now raises RPCTimeoutError if the result of a RPC call took to long to\n be received.\n\n- Client.serve() method respawns internal tasks on errors.\n\n\n0.1.3 (2019-08-21)\n------------------\n\n- Verbose feedback on assertion error while trying to unpack dataclasses.\n\n\n0.1.2 (2019-07-04)\n------------------\n\n- Fixed bug with bytes/str serialization/deserialization\n\n\n0.1.1 (2019-04-29)\n------------------\n\n- Added channel override option in client.rpc_call\n\n\n0.1.0 (2019-03-20)\n------------------\n\n- first pypi release\n\n\n",
"bugtrack_url": null,
"license": "BSD license",
"summary": "Asyncio RPC client/server with redis/msgpack/dataclasses",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/nens/asyncio-rpc"
},
"split_keywords": [
"asyncio",
"rpc"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9931c8f6612a486feadb0a1a74df291e0cde0934dde6ccbb716e943f032cfd4a",
"md5": "839b23bc7e4758dbe16da86729a461ba",
"sha256": "d261b721b591035c39299ed7e6d7ccd54d0f32fdcc6fe2dae1aa41634c6b46df"
},
"downloads": -1,
"filename": "asyncio_rpc-0.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "839b23bc7e4758dbe16da86729a461ba",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.8",
"size": 17509,
"upload_time": "2024-01-02T15:40:44",
"upload_time_iso_8601": "2024-01-02T15:40:44.669747Z",
"url": "https://files.pythonhosted.org/packages/99/31/c8f6612a486feadb0a1a74df291e0cde0934dde6ccbb716e943f032cfd4a/asyncio_rpc-0.2.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7b75041f9ddf5dbe92265fe1750394944b55ee35dd7c7f1b6c83e4b084548852",
"md5": "7418a33421df80e40eb347e1c896b0d2",
"sha256": "e990b3d6c3b50b5cd81979dc08ffcb4226144142898fc4063a072e24e1247037"
},
"downloads": -1,
"filename": "asyncio_rpc-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "7418a33421df80e40eb347e1c896b0d2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 21839,
"upload_time": "2024-01-02T15:40:46",
"upload_time_iso_8601": "2024-01-02T15:40:46.482897Z",
"url": "https://files.pythonhosted.org/packages/7b/75/041f9ddf5dbe92265fe1750394944b55ee35dd7c7f1b6c83e4b084548852/asyncio_rpc-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-02 15:40:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nens",
"github_project": "asyncio-rpc",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "asyncio-rpc"
}