Python3 asyncio JSONRPC module
``aiojsonrpc2`` is a Python3 JSONRPC module built using ``asyncio``.
Supports Python 3.5+ only (uses async/await syntax)
Plain socket transport (not JSONRPC over HTTP)
Supports secure TLS (ie. SSL) sockets
This is a new, fast, and modern JSONRPC module originally built to support `aiostratum_proxy <https://github.com/wetblanketcc/aiostratum_proxy>`__ (a next-gen, extensible cryptocurrency mining proxy). However, releasing it as it’s own independent Python package made the most sense.
There are currently no external dependencies required for aiojsonrpc2, and installation is simple:
pip install aiojsonrpc2
To use aiojsonrpc2 and depending on your needs, you need to implement either a client or server ‘protocol’. Both ClientProtocol and ServerProtocol let you handle bi-directional JSONRPC communication.
All incoming JSONRPC requests infer a protocol instance method from the JSONRPC method parameter. For example, if the method contains client.show_message, then the protocol class implementation must have an instance method called handle_client_show_message:
from aiojsonrpc2 import ClientProtocol, ServerProtocol class MyClientProtocol(ClientProtocol): # NOTE: the opposing connection (perhaps a server) would # have sent the `client.show_message` request; # bidirectional communication! def handle_client_show_message(self, connection, params, **kwargs): # assuming the message to show is `params` print(params)
Note how all . (ie. full stops/periods) from the JSONRPC method parameter are replaced by _ (ie. underscore).
handle haproxy ``PROXY` protocol <http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt>`__
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for aiojsonrpc2-1.0.0-py3-none-any.whl