在Python中执行RPC的当前选择是什么?[关闭]


131

实际上,我已经对Pyro和RPyC做过一些工作,但是RPC的实现要比这两者更多。我们可以列出它们吗?

基于本机Python的协议:

具有许多基础协议的RPC框架:

基于JSON-RPC的框架:

肥皂:

基于XML-RPC的框架:

其他:


3
这实际上取决于上下文。互联网?局域网?网站?分布式计算?快速原型?带宽?邮件大小?
DDAA

@silentghost:完成。我不希望默认情况下不设置“社区Wiki”,因为有时候,我错了:) @ddaa:任何。我是在一般性地询问RPC,如果他们在特定情况下有一些优点/缺点,请将它们添加到列表中。
edomaur

前一阵子我需要做“真实的” RPC(RFC 1050类型),然后的选择并没有给人留下深刻的印象,所以我不得不自己做大部分的事情。如果有人可以替代它,那么我想听听。
Mattias Nilsson,2009年

对于那些想要从Python到Python的RPC-PyRo 4最新版本不支持SSL,但是PyRo 3仍然支持-都是全Python,因此它们支持Python 2,Python 3,PyPy,Jython和IronPython。RPyc确实支持SSL,而Circuits则没有提及。
RichVel 2014年

Answers:



16

Apache Thrift是Facebook开发的一种跨语言RPC选项。通过套接字工作,函数签名以与语言无关的方式在文本文件中定义。


Thrift不支持Python 3尚不支持,这很遗憾
Roberto

个人评论:节俭是维护的噩梦。我还没有看到两个Linux发行版甚至都使用类似的configure标志。不久之前(当我从源代码构建0.10.0时),需要禁用大多数功能,以使其在“异类”系统(如当前的Ubuntu,Debian或Fedora)上构建。数据类型的更改使C ++的使用变得一团糟#ifdef,并且在存在的12年中,他们无法说服自己的软件已准备好用于1.0.0版本。我喜欢支持的大量语言,但我认为这是它们的弱点:尝试做太多事情。
马库斯·穆勒

(。我在一家中等规模的GNU项目我保持@Roberto,节俭支持PY3,至少现在使用节俭)
马库斯·米勒

我真的会鼓励人们考虑是否真的需要跨语言框架,该框架实际上试图将PHP到C ++到Java到Python到Erlang到Common Lisp到Haskell到Swift。出于某种原因,这些语言是不同的,Thrift需要妥协以找到共同点。我认为绝大多数人确实只需要连接1或2种不同的语言,并且更苗条的框架是可取的。
马库斯·穆勒(

6

自从我问了这个问题之后,我就开始使用python-symmetric-jsonrpc。它非常好,可以在python和非python软件之间使用,并遵循JSON-RPC标准。但是它缺少一些例子。



2

有一些尝试使SOAP与python一起使用,但是我还没有对其进行过多的测试,所以我不能说它是否好。

SOAPy是一个例子。


2
我已经使用了大多数SOAP框架并自己实现了一个用于进行基于反射的RPC的框架,我的建议很简单-不要这样做。如果您不需要跨语言通信+独立的接口描述+映射到自定义类,则SOAP的复杂性只会令人头疼。即使确实需要使用它,您也将需要经验来知道可以安全使用SOAP的哪些子集。
蚂蚁阿斯玛09年

3
SOAP通常是噩梦,尤其是在Python中。除非被迫使用,否则不要使用它。
Denis Otkidach,2009年

4
我在SOAP方面的有限经验同意这里的其他评论。xmlrpc经常做我需要的一切。
Mattias Nilsson

2

我们正在开发Versile PythonVPy),这是新ORB / RPC框架的python 2.6+和3.x的实现。可以提供用于审查和测试的功能性AGPL开发版本。VPy通过一般的本机对象层(代码示例)具有与PyRo和RPyC类似的本机python功能。该产品专为实现Versile Platform的平台无关的远程对象交互而设计

全面披露:我为开发VPy的公司工作。


1

也许是实现SOAP的ZSI。我使用了存根生成器,并且工作正常。我遇到的唯一问题是通过HTTPS进行SOAP。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.