Metadata-Version: 2.1
Name: asyncio-rpc
Version: 0.2.0
Summary: Asyncio RPC client/server with redis/msgpack/dataclasses
Home-page: https://github.com/nens/asyncio-rpc
Author: Jelle Prins
Author-email: jelle.prins@nelen-schuurmans.nl
License: BSD license
Keywords: asyncio rpc
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.8
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: lz4 (>=2.1.6)
Requires-Dist: msgpack (>=1.0.7)
Requires-Dist: redis[hiredis] (<5.0)
Provides-Extra: numpy
Requires-Dist: numpy (>=1.23) ; extra == 'numpy'

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


