Effortless Python RPC with ZeroMQ
Effortless python remote procedure calling with pickle over ZeroMQ. Allows you to expose a single class instance as an API server over every transport layer that ZeroMQ provides.
Install wirepickle using your favorite package manager:
$ pip install wirepickle
Next, on your server, annotate the methods you want to expose with the
from wirepickle.server import expose, Server class Foo: @expose('bar') def bar(self): print('bar') return 0 @expose('baz') def baz(self, arg1, kwarg1='baz'): print(kwarg1) return self.bar() + arg1
Note that you can return anything that can be pickled as a return value, and that stdout will be mirrored to the client.
Then, pass an instance of the class to the
Server constructor to create the server.
To start listening, call the
Server#listen() method on the constructed server with
a bind URI:
if __name__ == '__main__': instance = Foo() Server(instance).listen('tcp://*:12345')
Simply pass a URI to connect to and start using the methods.
from wirepickle.client import Client foo = Client('tcp://127.0.0.1:12345') foo.bar()
If desired, you can pass a
timeout kwarg to the
foo = Client('tcp://127.0.0.1:12345', timeout=1_000) # milliseconds
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for wirepickle-1.0.1-py3-none-any.whl