What is the current choice for doing RPC in Python?

PythonRpc

Python Problem Overview


Actually, I've done some work with Pyro and RPyC, but there is more RPC implementation than these two. Can we make a list of them?

Native Python-based protocols:

RPC frameworks with a lot of underlying protocols:

JSON-RPC based frameworks:

SOAP:

XML-RPC based frameworks:

Others:

Python Solutions


Solution 1 - Python

XML-RPC is part of the Python standard library:

Solution 2 - Python

Apache Thrift is a cross-language RPC option developed at Facebook. Works over sockets, function signatures are defined in text files in a language-independent way.

Solution 3 - Python

Since I've asked this question, I've started using python-symmetric-jsonrpc. It is quite good, can be used between python and non-python software and follow the JSON-RPC standard. But it lacks some examples.

Solution 4 - Python

You could try Ladon. It serves up multiple web server protocols at once so you can offer more flexibility at the client side.

http://pypi.python.org/pypi/ladon

Solution 5 - Python

There are some attempts at making SOAP work with python, but I haven't tested it much so I can't say if it is good or not.

SOAPy is one example.

Solution 6 - Python

We are developing Versile Python (VPy), an implementation for python 2.6+ and 3.x of a new ORB/RPC framework. Functional AGPL dev releases for review and testing are available. VPy has native python capabilities similar to PyRo and RPyC via a general native objects layer (code example). The product is designed for platform-independent remote object interaction for implementations of Versile Platform.

Full disclosure: I work for the company developing VPy.

Solution 7 - Python

maybe ZSI which implements SOAP. I used the stub generator and It worked properly. The only problem I encountered is about doing SOAP throught HTTPS.

Solution 8 - Python

You missed out [omniORB][1]. This is a pretty full CORBA implementation, so you can also use it to talk to other languages that have CORBA support.

[1]: http://omniorb.sourceforge.net/ "OmniORB"

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionedomaurView Question on Stackoverflow
Solution 1 - PythonPär WieslanderView Answer on Stackoverflow
Solution 2 - PythonRemcoGerlichView Answer on Stackoverflow
Solution 3 - PythonedomaurView Answer on Stackoverflow
Solution 4 - PythonJakobView Answer on Stackoverflow
Solution 5 - PythonMattias NilssonView Answer on Stackoverflow
Solution 6 - PythonVersileView Answer on Stackoverflow
Solution 7 - PythonPhilView Answer on Stackoverflow
Solution 8 - PythonDave KirbyView Answer on Stackoverflow