Skip to main content

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

Metadata

Release files for wirepickle 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wirepickle 1.0.1
File Size Uploaded
wirepickle-1.0.1.tar.gz 4.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wirepickle 1.0.1
File Interpreter ABI Platform
wirepickle-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.4 kB

Release files / wirepickle-1.0.1.tar.gz

Download URL wirepickle-1.0.1.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6ddd35e4eae010a856c02aa18c47a6228f763a95ead6a96a3a0d540e865263fd
BLAKE2b-256 checksum
How to use checksums
7608e1fd7b610f366a616eaf775b45fc5c6646f131325ef296c1003739ce021d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.3

Release files / wirepickle-1.0.1-py3-none-any.whl

Download URL wirepickle-1.0.1-py3-none-any.whl
Size 5.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b2625e5330f22906b0c318bebad66b7c12661d2ac4e6615439d108dc5941e87d
BLAKE2b-256 checksum
How to use checksums
847beb1c815201692a54eb06e7df6401c3fbe3b8c340226bac985005784dab7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.3

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page