semvec/pypi-packages huggingface dataset:
butler 0.3.0
0MQ based Service Oriented RPC Framework
License: MIT

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