इस प्रोजेक्ट के बारे में
anygo एक Go भाषा RPC फ्रेमवर्क और बेस लाइब्रेरी है जिसका उद्देश्य निर्भरता को कम करना है, और इसके कार्यात्मक मॉड्यूल स्वतंत्र रूप से उपयोग किए जा सकते हैं। मुख्य कार्यों में शामिल हैं:
**RPC Client कार्य**:
- डाउनस्ट्रीम सर्विस मैनेजर: कॉन्फ़िगरेशन फ़ाइल के माध्यम से कनेक्शन टाइमआउट, रिट्राय, कनेक्शन पूल, TLS और प्रॉक्सी आदि के प्रबंधन का समर्थन करता है। इसमें DNS, File, Host+Port सर्विस डिस्कवरी तरीके और Random और RoundRobin लोड बैलेंसिंग रणनीतियाँ अंतर्निहित हैं।
- नेटवर्क घटक: इसमें कैश और इंटरसेप्टर सुविधाओं वाले DNS रिज़ॉल्यूशन घटक और TCP डायल घटक शामिल हैं।
- प्रोटोकॉल कार्यान्वयन: एक सामान्य TCP RPC Client प्रदान करता है, जिसमें Redis (Resp3) और HTTP/HTTPS प्रोटोकॉल लागू किए गए हैं।
- स्टोरेज क्लाइंट: इसमें resp3 आधारित Redis Client और कई डेटाबेस (MariaDB, MySQL, SQL Server, Sqlite, Postgres) का समर्थन करने वाला हल्का ORM db Client शामिल है।
**RPC Server कार्य**:
- मिडलवेयर और विभिन्न रूटिंग मापदंडों का समर्थन करने वाला HTTP Router प्रदान करता है।
- इसमें HTTP Session घटक और कैप्चा जनरेशन सुविधा शामिल है।
**सामान्य बेस लाइब्रेरी**:
- वातावरण और कॉन्फ़िगरेशन: xattr का उपयोग एप्लिकेशन की वैश्विक वातावरण जानकारी के प्रबंधन के लिए किया जाता है; xcfg पर्यावरण चर और वैश्विक जानकारी से JSON, XML आदि प्रारूपों में कॉन्फ़िगरेशन पढ़ने का समर्थन करता है।
- कैश घटक (xcache): जेनेरिक्स का समर्थन करता है, जिसमें फ़ाइल, मेमोरी (LRU/FIFO/LIFO), Redis, और डेटाबेस स्टोरेज अंतर्निहित हैं। यह मल्टी-लेवल कैश कॉम्बिनेशन (Chains) और ट्रांसपेरेंट रीड टेम्पलेट्स (Reader) का समर्थन करता है।
- KV स्टोरेज: Redis जैसा Key-Value API प्रदान करता है, जो String, List, Hash, Set, ZSet जैसे प्रकारों का समर्थन करता है, और इसके अंडरलाइंग स्टोरेज ड्राइवर को लचीले ढंग से बदला जा सकता है।
- अन्य उपकरण: slog पर आधारित लॉग लाइब्रेरी (xlog), जेनेरिक असर्शन लाइब्रेरी (xt) और अंतर्राष्ट्रीयकरण (i18n) समर्थन।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.