Jsonrpyc 1.3.0 | Coderz Repository

jsonrpyc 1.3.0

Last updated:

0 purchases

jsonrpyc 1.3.0 Image
jsonrpyc 1.3.0 Images

Free

Languages

Categories

Add to Cart

Description:

jsonrpyc 1.3.0

Minimal python RPC implementation based on the JSON-RPC 2.0 specs.
Original source hosted at GitHub.



Usage
jsonrpyc.RPC instances basically wrap an input stream and an output stream in order to communicate with other services.
A service is not even forced to be written in Python as long as it strictly implements the JSON-RPC 2.0 specs.
A suitable implementation for NodeJs is node-json-rpc.
A jsonrpyc.RPC instance may wrap a target object.
Incomming requests will be routed to methods of this object whose result might be sent back as a response. Example implementation:
server.py
import jsonrpyc

class MyTarget(object):

def greet(self: MyTarget, name: str) -> str:
return f"Hi, {name}!"

jsonrpyc.RPC(MyTarget())

client.py
import jsonrpyc
from subprocess import Popen, PIPE

p = Popen(["python", "server.py"], stdin=PIPE, stdout=PIPE)
rpc = jsonrpyc.RPC(stdout=p.stdin, stdin=p.stdout)


#
# sync usage
#

print(rpc("greet", args=("John",), block=0.1))
# => "Hi, John!"


#
# async usage
#

def cb(err: Exception | None, res: str | None = None) -> None:
if err:
raise err
print(f"callback got: {res}")

rpc("greet", args=("John",), callback=cb)

# cb is called asynchronously which prints
# => "callback got: Hi, John!"


#
# shutdown
#

p.stdin.close()
p.stdout.close()
p.terminate()
p.wait()



Installation
Install simply via pip.
pip install jsonrpyc

# or with optional dev dependencies
pip install jsonrpyc[dev]

Contributing
If you like to contribute to jsonrpyc, I'm happy to receive pull requests.
Just make sure to add new test cases, run them via
> pytest tests

and check for linting and typing errors with
> mypy jsonrpyc
> flake8 jsonrpyc

Development

Source hosted at GitHub
Report issues, questions, feature requests on GitHub Issues

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.