PythonでRPCを実行するための現在の選択は何ですか?[閉まっている]


131

実際、私はPyroとRPyCでいくつかの作業を行いましたが、これら2つよりも多くのRPC実装があります。それらのリストを作成できますか?

Pythonベースのネイティブプロトコル:

多くの基本的なプロトコルを備えたRPCフレームワーク:

JSON-RPCベースのフレームワーク:

石鹸:

XML-RPCベースのフレームワーク:

その他:


3
それは本当に文脈に依存します。インターネット?LAN?ウェブサイト?分散計算?クイックプロトタイプ?帯域幅?メッセージのサイズは?
ddaa 09/10/12

@silentghost:完了。私はデフォルトで「コミュニティwiki」を設定しないことを好みます。なぜなら、時々、私は間違っているからです:) @ddaa:任意。RPCについて一般的な用語で質問します。特定のコンテキストに長所/短所がある場合は、リストに追加してください。
エドモア09

私は少し前に「実際の」RPC(RFC 1050の種類)を実行する必要があり、その選択はそれほど印象的ではなかったので、ほとんどの場合自分で行う必要がありました。誰かがそれに代わる良い方法を持っているなら、私はそれについて聞きたいです。
マティアスニルソン、

Python-to-Python RPC-PyRo 4最新バージョンはSSLをサポートしていませんが、PyRo 3は引き続きサポートされています。どちらもすべてPythonであるため、Python 2、Python 3、PyPy、Jython、IronPythonをサポートしています。RPycはSSLをサポートしていますが、Circuitsはこれについて言及していません。
RichVel 2014

回答:


38

XML-RPCは、Python標準ライブラリの一部です。


SimpleXMLRPCServerが適切なエラー処理を欠いていることを考慮して、単純化のためにXML-RPCに+1
Denis Otkidach、2009

1
「警告xmlrpc.serverモジュールは、悪意を持って作成されたデータに対して安全ではありません。」そのため、ユースケースがかなり限定されています。
エクイダモイド2017年

1
@Equidamoid信頼できないデータや認証されていないデータを解析する必要がある場合は、docs.python.org
/

16

Apache Thriftは、Facebookで開発された言語間RPCオプションです。ソケット上で機能し、関数のシグネチャは言語に依存しない方法でテキストファイルに定義されます。


ThriftはPython 3をサポートしていませんが、まだサポートされていません。これは残念です
Roberto

個人的なコメント:スリフトはメンテナンスの悪夢です。2つのLinuxディストリビューションで、同等の構成フラグを使用することすらありません。少し前まで(私がソースから0.10.0をビルドしたとき)、現在のUbuntu、Debian、Fedoraのような「エキゾチックな」システムでビルドするには、ほとんどの機能を無効にする必要があります。内部でのデータ型の変更により、C ++の使用は#ifdefsのめちゃくちゃなものになり、12年間存在していたため、ソフトウェアが1.0.0リリースの準備ができていると確信することができませんでした。私はサポートされている膨大な数の言語が好きですが、それは彼らの弱点だと思います。
マーカス・ミュラー

(。。私は中規模の少なくとも今では、倹約のサポートPY3、GNUプロジェクトI維持@Robertoに倹約を使用)
マーカス・ミュラー

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のどのサブセットが安全に使用できるかを知るための経験が必要です。
Ants Aasma 09

3
SOAPは一般的に、特にPythonでは悪夢です。強制されない限り、使用しないでください。
Denis Otkidach、2009

4
SOAPに関する私の限られた経験は、ここの他のコメントに同意します。多くの場合、xmlrpcは必要なすべてのことを行います。
Mattias Nilsson、

2

私たちは、新しいORB / RPCフレームワークのPython 2.6+および3.xの実装であるVersile Python(VPy)を開発しています。レビューおよびテスト用の機能的なAGPL開発者向けリリースが利用可能です。VPyには、一般的なネイティブオブジェクトレイヤー(コード例)を介して、PyRoおよびRPyCと同様のネイティブPython機能があります。この製品は、Versile Platformを実装するための、プラットフォームに依存しないリモートオブジェクトの対話用に設計されています。

完全な開示:私はVPyを開発している会社で働いています。


1

多分SOAPを実装するZSI。私はスタブジェネレーターを使用しましたが、正しく動作しました。私が遭遇した唯一の問題は、HTTPSを介してSOAPを実行することです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.