عن المشروع

Kratos هو إطار عمل Go خفيف الوزن يهدف إلى بناء الخدمات المصغرة السحابية. يعرض واجهات برمجة تطبيقات صغيرة وواضحة تغطي النقل، والبرمجيات الوسيطة، والتسجيل، والإعدادات، وتسجيل الدخول، والترميز، وتوليد الكود، بحيث يمكن لرمز التطبيق التركيز على منطق الأعمال. القدرات الرئيسية الموصوفة في ملف README: - تطوير يعتمد على API أولاً باستخدام Protobuf، مع كود HTTP وgRPC مُولّد. - طبقة نقل موحدة تتعامل مع خوادم HTTP وgRPC. - برمجيات وسيطة قابلة للتركيب لاهتمامات مثل الاسترداد، وتسجيل الدخول، والتحقق، والتتبع، والمقاييس، والمصادقة. - مكونات تسجيل وإعدادات وترميز قابلة للاستبدال، مما يسمح بتبديل الخلفيات المختلفة. - تسجيل دخول مبني على مكتبة log/slog القياسية، مع امتدادات OpenTelemetry متاحة من خلال حزم المساهمة. - معالجة متسقة للبيانات الوصفية، والأخطاء، والتحقق، وOpenAPI، وسير عمل توليد الكود. - نظام بيئي للمساهمات للتكاملات الاختيارية بما في ذلك السجلات، ومخازن الإعدادات، والبرمجيات الوسيطة، والترميزات، وقابلية المراقبة. للبدء، يتطلب الأمر Go 1.25 أو أحدث، وprotoc وprotoc-gen-go. يتم تثبيت واجهة الأوامر باستخدام go install، وبعد ذلك يقوم kratos new ببناء خدمة، وkratos proto add/client/server بتوليد قطع Protobuf، وkratos run بتشغيل الخدمة. مثال بسيط يوضح إنشاء خوادم HTTP وgRPC، وتسجيلها باستخدام kratos.New، واستدعاء app.Run. يلاحظ المشروع أن الإصدار v3 يقلل من الاعتماديات الأساسية ويجعل السلوك الضمني سابقًا صريحًا، ويوجه القراء إلى دليل الترحيل من v2 إلى v3 قبل ترقية الخدمات الإنتاجية. تشمل الموارد الإضافية الوثائق الرسمية، ومستودع الأمثلة، وتخطيط المشروع الموصى به، ودليل مساهمة المجتمع. يتم تشغيل مهام التطوير من خلال make test وmake lint. تشمل قنوات المجتمع الوثائق، ومجموعة WeChat، وDiscord، ومناقشات GitHub. يتم التعامل مع مشكلات الأمان بشكل خاص عبر عنوان بريد إلكتروني مخصص. المشروع مرخص بموجب MIT ويعترف بتأثير go-kit وgo-micro وgo-cloud وgo-zero وbeego.