عن المشروع

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).