عن المشروع
anygo هو إطار عمل Go RPC ومكتبة أساسية تهدف إلى تقليل الاعتماديات، ويمكن استخدام وحداتها الوظيفية بشكل مستقل. تشمل الوظائف الرئيسية ما يلي:
**وظائف RPC Client**:
- مدير الخدمات التابعة: يدعم إدارة مهلة الاتصال، وإعادة المحاولة، ومجمع الاتصالات، وTLS والوكيل عبر ملفات التكوين، مع طرق اكتشاف خدمات مدمجة مثل DNS وFile وHost+Port، واستراتيجيات موازنة الحمل Random وRoundRobin.
- مكونات الشبكة: تتضمن مكونات تحليل DNS ومكونات اتصال TCP مع ميزات التخزين المؤقت والمقاطعات.
- تنفيذ البروتوكولات: يوفر TCP RPC Client عام، مع تنفيذ بروتوكولات Redis (Resp3) وHTTP/HTTPS.
- عملاء التخزين: يتضمن Redis Client بناءً على resp3، وعميل ORM db خفيف الوزن يدعم قواعد بيانات متعددة (MariaDB, MySQL, SQL Server, Sqlite, Postgres).
**وظائف RPC Server**:
- يوفر HTTP Router يدعم البرمجيات الوسيطة (middleware) ومعلمات توجيه متعددة.
- يتضمن مكون HTTP Session ووظيفة توليد رموز التحقق (CAPTCHA).
**المكتبة الأساسية العامة**:
- البيئة والتكوين: يستخدم xattr لإدارة معلومات البيئة العالمية للتطبيق؛ ويدعم xcfg قراءة التكوينات بتنسيقات JSON وXML وغيرها من متغيرات البيئة والمعلومات العالمية.
- مكون التخزين المؤقت (xcache): يدعم الأنواع العامة (generics)، مع تخزين مدمج في الملفات، والذاكرة (LRU/FIFO/LIFO)، وRedis، وقواعد البيانات، ويدعم تركيبات التخزين المؤقت متعددة المستويات (Chains) وقوالب القراءة الشفافة (Reader).
- تخزين KV: يوفر واجهة برمجة تطبيقات Key-Value مشابهة لـ Redis، تدعم أنواع String, List, Hash, Set, ZSet، مع إمكانية التبديل المرن لمحركات التخزين الأساسية.
- أدوات أخرى: مكتبة سجلات (xlog) مغلفة بناءً على slog، ومكتبة تأكيدات عامة (xt)، ودعم التدويل (i18n).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.