https://github.com/datadvance/prpc
Bidirectional websocket RPC with data streaming
https://github.com/datadvance/prpc
network remote-execution rpc
Last synced: 6 months ago
JSON representation
Bidirectional websocket RPC with data streaming
- Host: GitHub
- URL: https://github.com/datadvance/prpc
- Owner: datadvance
- License: mit
- Created: 2017-09-07T13:04:13.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-27T12:33:13.000Z (over 7 years ago)
- Last Synced: 2025-07-21T05:03:03.750Z (8 months ago)
- Topics: network, remote-execution, rpc
- Language: Python
- Size: 273 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
pRpc
=====
pRpc is a yet another python RPC library.
Key features:
* asyncio-based - no predefined threadpools etc.
Concurrency is under your control.
* pRpc is symmetric - both peers may publish and call RPC methods
regardless of who initially established the connection.
* Streaming support - each call may send and/or recieve a message stream
in addition to arguments enabling efficient implementation of RPC calls
like 'upload'/'download'.
* Binary serialization using msgpack ensures the low communication overhead.
* Can theoretically work over any message-based transport,
but default implementation uses websockets as firewall-friendly solution.
Using websockets also brings some nice demultiplexing features as you
can publish different methods on different HTTP endpoints.
pRpc does not use any interface definition files. Such approach has
it's disadvantages but is natural for dynamic languages as python.
On the positive side, it eliminates a lot of complexity with code generation
tooling and using the generated code.
Reference documentation
-----------------------
`Hosted on GitHub Pages `_
Contributing
------------
This project is developed and maintained by DATADVANCE LLC. Please
submit an issue if you have any questions or want to suggest an
improvement.
Acknowledgements
----------------
This work is supported by the Russian Foundation for Basic Research
(project No. 15-29-07043).