What is the current choice for doing RPC in Python?
Question:
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:
- Spyne (see lightning talk)
JSON-RPC based frameworks:
SOAP:
XML-RPC based frameworks:
- XMLRPC, using the xmlrpclib and SimpleXMLRPCServer modules in the standard library.
Others:
Answers:
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.
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.
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.
You could try Ladon. It serves up multiple web server protocols at once so you can offer more flexibility at the client side.
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.
You missed out omniORB. This is a pretty full CORBA implementation, so you can also use it to talk to other languages that have CORBA support.
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.
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:
- Spyne (see lightning talk)
JSON-RPC based frameworks:
SOAP:
XML-RPC based frameworks:
- XMLRPC, using the xmlrpclib and SimpleXMLRPCServer modules in the standard library.
Others:
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.
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.
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.
You could try Ladon. It serves up multiple web server protocols at once so you can offer more flexibility at the client side.
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.
You missed out omniORB. This is a pretty full CORBA implementation, so you can also use it to talk to other languages that have CORBA support.
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.