Skip to main content

0MQ based Service Oriented RPC Framework

Project description

The butler framework aims to make building reliable and high-performance service-oriented systems easy. The internal communication is done via ØMQ sockets.

Usage

Start a Router:

import butler

router = butler.Router()
router.frontend.bind("tcp://*:5555")
router.backend.bind("tcp://*:5556")
router.run()

Register a Service Worker by name:

worker = butler.Service('tcp://127.0.0.1:5556', 'api.images')

Expose a function on the Service Worker:

def resize_image(name, size):
    return 'resized image'

worker.register_function(resize_image)
worker.run()

Or expose all the methods of an object:

class RPCService(object):
    def resize_image(self, name, size):
        return 'resized image'

worker.register(RPCService())
worker.run()

Send a request to a registered Service and receive its response:

client = butler.Client('tcp://127.0.0.1:5555').rpc('api.images')
client.resize_image('test.jpeg', '150x180')
client.close()

Download files

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

Source Distribution

butler-0.3.0.tar.gz (9.7 kB view hashes)

Uploaded source

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