عن المشروع
# عميل EndlessNet
يوفر عميل EndlessNet البنية التحتية الأساسية لشبكة EndlessNet، حيث يعمل كعميل طويل التشغيل، وواجهة سطر أوامر (CLI)، وتكامل خدمي عبر Linux وmacOS وWindows. يتولى عمليات الشبكة الحيوية بما في ذلك استهلاك كتالوج الخدمات الموقّع، وإدارة مسارات تطبيقات L3، واكتشاف الموصلات، وفرض الحزم.
## الميزات الرئيسية
- **دعم متعدد المنصات**: تشغيل أصلي على Linux (Ubuntu/Debian) وWindows Server وmacOS.
- **شبكات آمنة**: يطبق عقود سلكية موقّعة وتفاعلات HTTP لمستوى التحكم لضمان سلامة البيانات والوصول المصرح به.
- **تكامل الخدمات**: يدير الاتصال المحلي بين العمليات (IPC) عبر الحد العام `ipc/v2`، مع كشف عملاء نقل صارمين مع إبقاء الحالة الداخلية والهوية وتطبيقات STUN خاصة.
- **CLI والأتمتة**: يوفر واجهة سطر أوامر لتفاعل المستخدم، مع أوامر محددة مقيّدة بسياسات الأمان (مثل موافقة المسار تتطلب وحدة تحكم الإدارة).
- **اختبار قوي**: يتضمن خطوط CI شاملة تغطي اختبارات التثبيت، والقبول الأساسي للخدمة، واستمرارية الانقطاع، وسيناريوهات العقود مع العملاء الحقيقيين ضد خوادم اختبار معزولة.
## البنية والاعتماديات
يعتمد العميل على وحدات خارجية لعقود واجهة برمجة التطبيقات الخاصة به:
- **واجهة مستوى التحكم**: يستهلك DTOs وعملاء مُصدّرين بإصدارات من `github.com/endless-net/client-api/clientapi`. يشمل ذلك عقود HTTP/الاسترداد (v1)، ورسائل protobuf، وارتباطات Connect.
- **الحد العام**: حزمة Go الوحيدة المكشوفة هي `ipc/v2`، التي تتعامل مع عقود IPC v2 للخدمة المحلية.
## البناء والإصدار
يمكن للمطورين بناء العميل باستخدام أدوات Go القياسية:
```bash
go build ./cmd/endlessnet-client ./cmd/endlessnet-client-recovery-helper
go test -short ./...
```
يتم نشر الإصدارات عبر GitHub Releases لـ Windows amd64 وLinux amd64، إلى جانب حزم APT لـ Debian/Ubuntu (amd64/arm64). تضمن مصفوفة CI التوافق عبر Ubuntu 22.04/24.04 وWindows 2022/2025 وmacOS 15.
## التوثيق
تتوفر أدلة تشغيلية مفصلة ومواصفات تقنية في دليل `docs` بالمستودع:
- [`docs/ru/client-and-network.md`](docs/ru/client-and-network.md): دليل البنية والعمليات بالروسية.
- [`docs/service-discovery.md`](docs/service-discovery.md): تفاصيل استهلاك كتالوج الخدمات الموقّع.
- [`docs/application-runtime.md`](docs/application-runtime.md): مسارات L3 وفرض الحزم.
- [`docs/installation-tests.md`](docs/installation-tests.md): معايير التثبيت والقبول.
- [`docs/testing-control-plane.md`](docs/testing-control-plane.md): اختبار سيناريوهات مستوى التحكم.
- [`docs/client-ipc-v2.openapi.yaml`](docs/client-ipc-v2.openapi.yaml): عقد IPC للخدمة المحلية.
- [`docs/client-ownership-recovery.md`](docs/client-ownership-recovery.md): عمليات استرداد الملكية.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.