عن المشروع

Iris هو إطار عمل ويب للغة Go. يغطي ملف README الإصدار الحالي v12، بالإضافة إلى معاينة للإصدار المخطط له v14. القدرات الأساسية الموصوفة للإصدار v12: - دعم HTTP/2، بما في ذلك server push والبيانات المدمجة. - موجه (router) يقبل معاملات مسار ديناميكية بأنواع قياسية مثل :uuid و:string و:int، ويسمح بتعريف أنواع معاملات مخصصة. - برمجيات وسيطة مدمجة مثل سجل الوصول (access log)، والمصادقة الأساسية (basic auth)، وCORS، وgRPC، وفحوصات hCaptcha وreCaptcha لمكافحة البوتات، وJWT، وتجاوز الطريقة (method override)، والمراقب (monitor)، وpprof، وتحديد معدل الطلبات (rate limit)، والاسترداد (recovery)، ومعرف الطلب (request ID)، وإعادة الكتابة (rewrite). - إصدارات API، ونمط Model-View-Controller (حزمة mvc) وحقن التبعيات لـ MVC والمعالجات وموجهات API. - WebSockets وgRPC وHTTPS تلقائي. - دعم مدمج لـ ngrok لتعريض تطبيق محلي للإنترنت. - ضغط الاستجابة (gzip, deflate, brotli, snappy, s2) وبرمجية وسيطة للضغط. - محركات العرض بما في ذلك HTML وDjango وHandlebars وPug/Jade. - خوادم ملفات مخصصة وخادم WebDAV. - التخزين المؤقت (Cache)، والتدويل (i18n, sitemap)، والجلسات، ومجموعة اختبارات. - استجابات غنية: HTML، نص، Markdown، XML، YAML، ثنائي، JSON، JSONP، Protocol Buffers، MessagePack، تفاوض المحتوى، والبث (streaming) والأحداث المرسلة من الخادم (server-sent events). - ربط غني للطلبات: استعلامات URL، الرؤوس (headers)، النماذج، النصوص، XML، YAML، ثنائي، JSON، التحقق من الصحة، Protocol Buffers وMessagePack. - يظهر كود تجريبي في README تطبيقاً بسيطاً يتم إنشاؤه بواسطة iris.New()، ومساراً مسجلاً عبر app.Get، وapp.Listen(":8080"). يذكر ملف README توفر 285 مثالاً في دليل _examples وروابط لدردشة المجتمع وصفحات التبرع. الإصدار v14 المخطط له (يوصف بأنه أكبر إصدار في تاريخ المشروع، بدون تاريخ إصدار عام ومسار استيراد جديد بحيث لا يتأثر كود v12): - منشئ تطبيقات يتم التحقق منه أثناء التجميع (iris.NewBuilder) يربط CORS، والضغط، وسجل الوصول، ونقطة نهاية الحالة الصحية، وتعيين الأخطاء، والخدمات ومجموعات API في سلسلة واحدة بترتيب خطوات مفروض. - مساعدات rest مثل rest.ReadJSON[T] وrest.OK وrest.NoContent وrest.Count وrest.Created وrest.Paginated التي تنقل فك التشفير والتحقق من الصحة وعرض الأخطاء خارج أجسام المعالجات. - حزمة rest/errors للإعلان عن تعيينات خطأ النطاق إلى استجابة HTTP مرة واحدة، مع مجمعات اختيارية للتسجيل والعرض كـ JSON أو عرض مرئي. - حقن التبعيات متاح بما يتجاوز MVC، مع خطاف Init(ctx) يعمل أثناء Build() وموارد قابلة للإغلاق يتم إغلاقها عند الإيقاف؛ استبدال حزمة hero بحزم dep وrest. - نقل الحزم: تصبح sessions وcache وwebsocket وi18n وview وversioning برمجيات وسيطة؛ وتنتقل mvc تحت controller جنباً إلى جنب مع متحكمات fileserver وsitemap وapigraph؛ وتنتقل تطبيقات محرك العرض إلى iris-contrib/views. - حوالي ثلاثين برمجية وسيطة مدمجة، بما في ذلك برمجيات جديدة مثل httpcost (الوقت والذاكرة وCPU لكل طلب)، وbodylimit، وcompress، وcounter، وreferrer، وgeolocation، وipaccess وservertiming. - التكوين عبر iris.Options partial literals، مع قيام Bind بتحميل YAML من متغير البيئة SERVER_CONFIG أو ملف. - تغييرات في المسميات مثل تحويل Party إلى Router وctx.URLParam إلى ctx.Query().Get، موثقة في دليل الهجرة. - ملفات تعريف ارتباط للجلسات آمنة افتراضياً (Secure, SameSite=Lax)، وحدود لجسم الطلب في كل مسار قراءة، وإصلاحات لمشكلات سابقة في تحديد معدل الطلبات وLogout. - التوثيق المخطط له عبارة عن كتاب من 23 فصلاً في المستودع، ودرس تعليمي للبدء، ودليل هجرة لـ v12، وويكي مولد تلقائياً. يصور ملف README إطار Iris على أنه سريع وبسيط ولكن متكامل الميزات، ويؤكد على دعم المجتمع طويل الأمد؛ كما يربط بصفحات اختبارات أداء وشهادات خارجية بدلاً من تقديم قياسات بنفسه.