Skip to main content

Tiny implementation of a WSGI-based RPC server and client

Project description

WSGI-based RPC

Why this package?

  1. JSON-RPC is easy and fast, but you need to convert your arguments and return values to basic python types (strings, lists, dicts, etc)
  2. Pyro and RPyC are very powerful, but sometimes you don't need nor want every object to be proxied over sockets.

This package provides the ability to invoque methods on a remote object with pickable arguments and receiving a pickable object on return.

This module is about 70 lines of code and depends only on Python and requests package.

This implementation is supposed to be fast while being easy to understand.

Running the included example

The included example implements a program that mimics the Linux rev command. The client program runs a loop that reads a line of text from stdin, sends it to the server which reverses it and returns it back to the client, which prints it to stdout.

To run the example server with Python's wsgi reference implemetantion:

$ python example/server.py

To run the example server with gunicorn:

$ cd example && gunicorn -b localhost:5555 server:app

To run the client:

$ echo Hello world | python example/client.py
dlrow olleH

License

This Python module is licensed under the MIT license.

Project details


Download files

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

Source Distribution

wsgirpc-2.1.1.tar.gz (2.6 kB view details)

Uploaded Source

File details

Details for the file wsgirpc-2.1.1.tar.gz.

File metadata

  • Download URL: wsgirpc-2.1.1.tar.gz
  • Upload date:
  • Size: 2.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for wsgirpc-2.1.1.tar.gz
Algorithm Hash digest
SHA256 1bc7dd21c6b60a5c21be329ce76b7f52bcf57b62c618ac255c8a74cb687fab32
MD5 be0f8f496e2ddc7a6d6362bf6171a02f
BLAKE2b-256 508d310d43c7dfe1953f0e33d5cf12eeb37465758920249aaedd160d0c023ab5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page