Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Effortless Python RPC with ZeroMQ

Project description

wirepickle

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.

Quick Setup

Install wirepickle using your favorite package manager:

$ pip install wirepickle

Server

Next, on your server, annotate the methods you want to expose with the @expose decorator:

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')

Client

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 Client constructor:

foo = Client('tcp://127.0.0.1:12345', timeout=1_000) # milliseconds

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for wirepickle, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size wirepickle-1.0.1-py3-none-any.whl (5.1 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size wirepickle-1.0.1.tar.gz (4.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page