Python only RPC library based on ZeroMQ and Pickle
pip install python-rpc
Here is a use-case showing how to use the server as a compute node: Typically we would expose an object and not a package.
Server ipython session:
In [1]: import numpy as np
In [2]: from pyrpc import Server
In [3]: server = Server(np)
In [4]: server.run()
Client ipython session:
In [1]: from pyrpc import Client
In [2]: client = Client()
In [3]: client.ones((3, 3))
Out[3]:
array([[ 1.,  1.,  1.],
       [ 1.,  1.,  1.],
       [ 1.,  1.,  1.]])
In [4]: client.add(Out[3], Out[3])
Out[4]:
array([[ 2.,  2.,  2.],
       [ 2.,  2.,  2.],
       [ 2.,  2.,  2.]])
- Stack trace on client side.
 - Factory function for servers.
 - GC client objects -> GC on server.
 - isinstance compatibility with server object.
 
- Does not work with:
- generators
 - async
 - dictionaries.
 - anything else Pickle cannot serialize.