पायथन में आरपीसी करने के लिए वर्तमान विकल्प क्या है? [बन्द है]


131

वास्तव में, मैंने कुछ काम पायरो और आरपीवाईसी के साथ किया है, लेकिन इन दोनों की तुलना में अधिक आरपीसी कार्यान्वयन है। क्या हम उनकी एक सूची बना सकते हैं?

मूल पायथन-आधारित प्रोटोकॉल:

कई अंतर्निहित प्रोटोकॉल के साथ RPC फ्रेमवर्क:

JSON-RPC आधारित रूपरेखा:

साबुन:

XML- RPC आधारित रूपरेखाएँ:

  • XMLRPC, मानक लाइब्रेरी में xmlrpclib और SimpleXMLRPCServer मॉड्यूल का उपयोग कर रहा है ।

अन्य:


3
यह वास्तव में संदर्भ पर निर्भर करता है। इंटरनेट? लैन? वेबसाइट? वितरित संगणना? त्वरित प्रोटोटाइप? बैंडविड्थ? संदेशों का आकार?
ddaa

@ साइलेंटघॉस्ट: किया गया। मैं डिफ़ॉल्ट रूप से "कम्युनिटी विकी" सेट नहीं करना पसंद करता हूं, क्योंकि कभी-कभी, मैं गलत हूं :) @ डीडीए: कोई भी। मैं सामान्य शब्दों में RPC के बारे में पूछ रहा हूं, यदि उनके पास विशिष्ट संदर्भों में कुछ पेशेवरों / विपक्ष हैं, तो कृपया उन्हें सूची में जोड़ें।
edomaur

मुझे थोड़ी देर पहले "वास्तविक" आरपीसी करने की आवश्यकता थी (आरएफसी 1050 तरह की) और विकल्प तब बहुत प्रभावित नहीं हुए, इसलिए मैंने इसे स्वयं करने का प्रयास किया। अगर किसी के पास इसका अच्छा विकल्प है, तो मैं इसके बारे में सुनना चाहूंगा।
मटियास निल्सन

अजगर-से-पायथन आरपीसी चाहने वालों के लिए - PyRo 4 नवीनतम संस्करण SSL का समर्थन नहीं करता है, लेकिन PyRo 3 अभी भी करता है - दोनों ही Python हैं, इसलिए वे Python 2, Python 3, PyPy, Jython और IronPython का समर्थन करते हैं। RPyc SSL का समर्थन करता है, जबकि सर्किट इसका उल्लेख नहीं करते हैं।
रिचवेल

जवाबों:


38

XML-RPC पायथन मानक पुस्तकालय का हिस्सा है:


सरलता के लिए एक्सएमएल-आरपीसी के लिए +1, यहां तक ​​कि लेखांकन कि SimpleXMLRPCServer में उचित त्रुटि हैंडलिंग का अभाव है।
डेनिस ओटकिडैक

1
"चेतावनी xmlrpc.server मॉड्यूल दुर्भावनापूर्ण रूप से निर्मित डेटा के खिलाफ सुरक्षित नहीं है।", इसलिए इसमें कुछ बहुत सीमित यूसेज हैं।
इक्वेडामॉइड

1
@Equidamoid यदि आपको अविश्वासित या अवास्तविक
AmaChefe

16

अपाचे थ्रिफ्ट फेसबुक पर विकसित एक क्रॉस-भाषा आरपीसी विकल्प है। सॉकेट्स पर कार्य करता है, फ़ंक्शन हस्ताक्षर भाषा-स्वतंत्र तरीके से पाठ फ़ाइलों में परिभाषित किए जाते हैं।


थ्रिफ़्ट का समर्थन नहीं करता है पायथन 3 अभी तक समर्थित नहीं है, यह शर्म की बात है
रॉबर्टो

व्यक्तिगत टिप्पणी: थ्रिफ्ट एक रखरखाव बुरा सपना है। मैंने दो लिनक्स वितरण नहीं देखे हैं जो तुलनीय कॉन्फ़िगर फ़्लैग का उपयोग करते हैं। बहुत पहले नहीं (जब मैंने स्रोत से 0.10.0 का निर्माण किया था), तो वर्तमान में उबंटू, डेबियन या फेडोरा जैसी "विदेशी" प्रणालियों पर बनाने के लिए अधिकांश विशेषताओं को अक्षम करने की आवश्यकता है। हुड के तहत डेटाटाइप परिवर्तन सी + + उपयोग को गड़बड़ बनाते हैं #ifdef, और 12 वर्षों के अस्तित्व में, वे खुद को समझाने में कामयाब नहीं हुए हैं कि उनका सॉफ्टवेयर एक 1.0.0 रिलीज के लिए तैयार है। मुझे भारी मात्रा में समर्थित भाषाएँ पसंद हैं, लेकिन मुझे लगता है कि यह उनकी कमजोरी है: बहुत अधिक करने की कोशिश करना।
मार्कस मुलर

(मैं मध्यम आकार के GNU प्रोजेक्ट मैं बनाए रखने में थ्रिफ्ट का उपयोग करता हूं। @ रॉबर्टो, थ्रिफ्ट सपोर्ट Py3 का समर्थन करता हूं, कम से कम अब तक।)
मार्कस मूलर

मैं वास्तव में लोगों को वास्तव में इस बारे में सोचने के लिए प्रोत्साहित करता हूं कि क्या आपको वास्तव में एक क्रॉस-लैंग्वेज फ्रेमवर्क की आवश्यकता है जो PHP को C ++ से जावा तक पायथन से Erlang को कॉमन लिस्प से हास्केल तक स्विफ्ट से कनेक्ट करने की कोशिश करता है। ये अलग-अलग भाषाएं हैं, एक कारण के लिए, और थ्रिफ्ट को एक आम भाजक को खोजने के लिए समझौता करने की आवश्यकता है। मेरा तर्क है कि लोगों के विशाल बहुमत को वास्तव में केवल 1 या 2 विभिन्न भाषाओं को जोड़ने की जरूरत है, और एक स्लिमर फ्रेमवर्क बेहतर होगा।
मार्कस मुलर

6

जब से मैंने यह सवाल पूछा है, मैंने पायथन-सिमिट्रिक-जोंसरपीसी का उपयोग करना शुरू कर दिया है । यह काफी अच्छा है, अजगर और गैर-अजगर सॉफ्टवेयर के बीच इस्तेमाल किया जा सकता है और JSON-RPC मानक का पालन कर सकता है। लेकिन इसमें कुछ उदाहरणों का अभाव है।


5

आप लाडनूं को आजमा सकते हैं। यह एक ही बार में कई वेब सर्वर प्रोटोकॉल परोसता है ताकि आप क्लाइंट की तरफ अधिक लचीलापन प्रदान कर सकें।

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


2

अजगर के साथ SOAP काम करने के कुछ प्रयास हैं, लेकिन मैंने इसका परीक्षण नहीं किया है इसलिए मैं यह नहीं कह सकता कि यह अच्छा है या नहीं।

SOAPy एक उदाहरण है।


2
SOAP फ्रेमवर्क का सबसे अधिक उपयोग किया है और एक प्रतिबिंब आधारित RPC के लिए खुद को लागू किया है, मेरी सलाह सरल है - ऐसा मत करो। यदि आपको क्रॉस भाषा संचार + स्वतंत्र इंटरफ़ेस विवरण + कस्टम कक्षाओं के लिए मैपिंग की आवश्यकता नहीं है, तो SOAP की जटिलता केवल सिरदर्द होगी। यहां तक ​​कि अगर आपको इसका उपयोग करने की आवश्यकता है, तो आपको यह जानने के लिए अनुभव की आवश्यकता होगी कि SOAP का सबसेट उपयोग करने के लिए सुरक्षित है।
आंटासं

3
SOAP सामान्य रूप से और विशेष रूप से पायथन में बुरा सपना है। जब तक आप मजबूर न हों, इसका उपयोग न करें।
डेनिस ओटकिडैक

4
SOAP के साथ मेरा सीमित अनुभव यहाँ की अन्य टिप्पणियों से सहमत है। xmlrpc अक्सर सब कुछ है जो मुझे चाहिए।
मटियास निल्सन

2

हम वर्साइल पायथन (वीपीवाई) विकसित कर रहे हैं , अजगर 2.6+ के लिए एक कार्यान्वयन और एक नया ओआरबी / आरपीसी फ्रेमवर्क का 3.x। समीक्षा और परीक्षण के लिए कार्यात्मक एजीपीएल देव विज्ञप्ति उपलब्ध हैं । VPy में एक सामान्य देशी वस्तुओं की परत ( कोड उदाहरण ) के माध्यम से PyRo और RPyC के समान देशी पायथन क्षमताएं हैं । उत्पाद को वर्साइल प्लेटफ़ॉर्म के कार्यान्वयन के लिए प्लेटफ़ॉर्म-स्वतंत्र दूरस्थ ऑब्जेक्ट इंटरैक्शन के लिए डिज़ाइन किया गया है ।

पूर्ण प्रकटीकरण: मैं वीपीवाई विकसित करने वाली कंपनी के लिए काम करता हूं।


1

शायद ZSI जो SOAP को लागू करता है। मैंने स्टब जनरेटर का उपयोग किया और यह ठीक से काम करता है। एकमात्र समस्या जो मुझे लगी है वह SOAP थ्रू HTTPS करने के बारे में है।


0

आप omniORB से चूक गए । यह एक बहुत ही पूर्ण CORBA कार्यान्वयन है, इसलिए आप इसका उपयोग उन अन्य भाषाओं से बात करने के लिए भी कर सकते हैं जिनके पास CORBA का समर्थन है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.