الإعلان عن Gin 1.12.0: دعم BSON وتحسينات Context والأداء والمزيد
وصل Gin v1.12.0
يسرنا الإعلان عن إطلاق Gin v1.12.0، المليء بالميزات الجديدة وتحسينات الأداء الكبيرة وعدد من إصلاحات الأخطاء. يعمق هذا الإصدار دعم Gin للبروتوكولات الحديثة ويحسن تجربة المطور ويستمر في تقاليد المشروع بالبقاء سريعًا وخفيفًا.
🌟 الميزات الرئيسية
-
دعم بروتوكول BSON: تدعم طبقة العرض الآن ترميز BSON، مما يفتح الباب أمام تبادل بيانات ثنائي أكثر كفاءة (#4145).
-
طرق Context الجديدة: يجعل مساعدان جديدان معالجة الأخطاء أنظف وأكثر طبيعية:
-
الربط المرن: يحترم ربط URI والاستعلام الآن
encoding.UnmarshalText، مما يمنحك تحكمًا أكثر على فك تسلسل الأنواع المخصصة (#4203). -
خيار المسار المهرب: يتيح لك خيار محرك جديد اختيار استخدام مسار الطلب المهرب (الخام) للتوجيه (#4420).
-
Protocol Buffers في التفاوض على المحتوى: يدعم
contextالآن Protocol Buffers كنوع محتوى قابل للتفاوض، مما يسهل دمج الاستجابات بأسلوب gRPC (#4423). -
الكمون الملون في Logger: يعرض المسجل الافتراضي الآن زمن الكمون بالألوان، مما يسهل اكتشاف الطلبات البطيئة للوهلة الأولى (#4146).
🚀 الأداء والتحسينات
- تحسينات شجرة التوجيه: تقلل تحسينات متعددة لشجرة جذور التخصيصات وتسرع تحليل المسار:
- تحسين الاسترجاع: أصبح قراءة تتبع المكدس أكثر كفاءة الآن (#4466).
- تحسينات Logger: يمكن الآن تخطي مخرجات سلسلة الاستعلام عبر التكوين (#4547).
- ثقة مقبس Unix: يتم الآن تصديق رؤوس
X-Forwarded-Forدائمًا عند وصول الطلبات عبر مقبس Unix (#3359). - أمان Flush: لا يزيد
Flush()الآن من الذعر عندما لا ينفذhttp.ResponseWriterالأساسيhttp.Flusher(#4479). - تحسينات جودة الكود: معالجة خريطة أنظف مع
maps.Copyوmaps.Clone، ثوابت مسماة تحل محل الأرقام السحرية، حلقات range-over-int حديثة والمزيد (#4352, #4333, #4529, #4392).
🐛 إصلاحات الأخطاء
- إصلاح ذعر التوجيه: تم حل الذعر في
findCaseInsensitivePathRecعندما يكونRedirectFixedPathمفعلاً (#4535). - Content-Length في عرض البيانات: يكتب
Data.Renderالآن رأسContent-Lengthبشكل صحيح (#4206). - ClientIP مع رؤوس متعددة: يتعامل
ClientIPالآن بشكل صحيح مع الطلبات التي تحتوي على قيم رأسX-Forwarded-Forمتعددة (#4472). - حالات الربط الحدية: تم إصلاح أخطاء القيمة الفارغة في الربط (#2169) وتحسين معالجة الشرائح/المصفوفات الفارغة في ربط النموذج (#4380).
- مسارات القولون الحرفية: تعمل المسارات التي تحتوي على القولون الحرفي الآن بشكل صحيح مع
engine.Handler()(#4415). - تسرب واصف الملف: يغلق
RunFdالآن مقبضos.Fileبشكل صحيح لمنع تسرب الموارد (#4422). - سلوك Hijack: تم تحسين سلوك الخطف لنمذجة دورة حياة الاستجابة بشكل صحيح (#4373).
- الاسترجاع: يتم الآن قمع
http.ErrAbortHandlerفي برنامج وسيط الاسترجاع كما هو مقصود (#4336). - عدم تطابق إصدار Debug: تم إصلاح سلسلة إصدار غير صحيحة تم الإبلاغ عنها في وضع تصحيح الأخطاء (#4403).
🔧 تحديثات البناء والاعتماد و CI
- الحد الأدنى Go 1.25: إن الحد الأدنى لإصدار Go المدعوم الآن هو 1.25، مع تحديث سير عمل CI وفقًا لذلك (#4550).
- ترقية اعتماد BSON: تم ترقية اعتماد ربط BSON إلى
mongo-driverv2 (#4549).
يعكس Gin 1.12.0 تفاني مجتمعنا — المساهمون والمراجعون والمستخدمون على حد سواء. شكرًا لجعل Gin أفضل مع كل إصدار.
هل أنت مستعد لتجربة Gin 1.12.0؟ قم بالترقية على GitHub وأخبرنا برأيك!