عن المشروع

cellnet هي مكتبة شبكات خادم مفتوحة المصدر عالية الأداء ومكوّنة وقابلة للتوسع مكتوبة بلغة Go. مرّت بعدة إصدارات متتالية، وهي مناسبة للمبتدئين للتعلم، وتُستخدم على نطاق واسع في مشاريع خاصة وتجارية، لا سيما في مجال خوادم الألعاب. ## الميزات الرئيسية - **دعم بروتوكولات النقل**: - TCP: يدعم إعادة اتصال الموصل وإعادة التشغيل الأنيق للمستمع. - UDP: إرسال واستقبال حزم UDP الخام. - HTTP (قيد الاختبار): يدعم إرسال واستقبال JSON وform، مما يسهل ربط خوادم الألعاب بـ SDK، لكن يُنصح باستخدام مكتبات متخصصة (مثل gin) لخدمات الويب واسعة النطاق. - WebSocket: مبني على gorilla/websocket. - **الترميز (Codec)**: - دعم مدمج لتنسيقات Google Protobuf وJSON والبروتوكول الثنائي (goobjfmt) وProtoPlus (protoplus). - يدعم الترميز المختلط للإرسال والاستقبال، مما يسمح باستخدام ترميزات مختلفة والتواصل مع خوادم بلغات مختلفة دون تعديل الكود. - **نماذج الطوابير**: - يدعم المنطق غير المتزامن أحادي الخيط (مناسب لـ MMORPG)، والمنطق المتزامن متعدد الخيوط (مناسب للروبوتات)، والمنطق المتزامن متعدد الخيوط (مناسب للبوابات وخوادم HTTP). - **RPC**: يدعم RPC المتزامن وغير المتزامن. - **سجل الرسائل**: يتيح عرض كل حقل من حقول الرسائل المرسلة والمستقبلة بسهولة. ## البنية والتوسع تجرد cellnet Processor وPeer بشكل عالٍ، ويمكن للمستخدمين التوسع أفقياً لتلبية احتياجات تغليف الشبكة المختلفة. يدعم تخصيص Codec وPeer وProcessor. ## أمثلة الاستخدام تتوفر أمثلة بسيطة للخادم والعميل توضح كيفية إنشاء Peer وربط المعالجات وإرسال الرسائل واستقبالها. ## الحصول والترجمة يتطلب Go 1.10 أو أحدث، ويتم الحصول على التبعيات ذات الصلة عبر `go get`. ## التوثيق والدعم تتوفر وثائق حول الطوابير وPeer ومعالجة الرسائل والتخصيص الموسع، بالإضافة إلى الأسئلة الشائعة وسجل الإصدارات. ## المساهمون شكراً للمساهمين المتعددين على إصلاح الأخطاء وتحسين الأداء. ## سجل الإصدارات v4 (2018.5)، v3 (2017.8)، v2 (2017.1)، v1 (2015.8).