New RPC system

Issue #20 resolved
Pierre Bourdon created an issue

We need to have some kind of standard RPC system with (at least) the following features:

  • Easy to use: creating a client should just be "Client(url)", calling a method should be "client.method(args)", creating a server should be just like SimpleXMLRPCServer

  • Introspection support: special method to list exported methods and their docstrings.

  • Command line tool for humans to easily perform RPC without opening a Python shell: "prolorpc http://mdb/ get_machines"

  • Supports asynchronous calls: if a method is called with callback=<func>, the RPC client automatically switches to asynchronous (using a thread pool? Tornado httpclient? not sure)

  • Supports streaming calls, mdbsync/udbsync like. If the server-side function returns a generator, the client-side function should return a generator as well.

  • Authentication support: not yet sure how to do it properly to avoid repeating info in client and server, but there has to be a way.

Comments (2)

  1. Antoine Pietri

    Finished, see in python-lib/prologin/rpc. The auth is made with timeauth, generators are handled, there is a "prolorpc" command line tool.

  2. Log in to comment