الإعلان عن Gin 1.12.0: دعم BSON، تحسينات السياق، الأداء والمزيد
وصل Gin v1.12.0
يسعدنا الإعلان عن إصدار Gin v1.12.0، المليء بميزات جديدة وتحسينات أداء ذات معنى وجولة قوية من إصلاحات الأخطاء. يعمّق هذا الإصدار دعم Gin للبروتوكولات الحديثة ويحسّن تجربة المطور ويواصل تقليد المشروع في البقاء سريعاً وخفيفاً.
الميزات الرئيسية
-
دعم بروتوكول BSON: تدعم طبقة العرض الآن ترميز BSON، مما يفتح الباب لتبادل بيانات ثنائية أكثر كفاءة (#4145).
-
طرق سياق جديدة: مساعدان جديدان يجعلان معالجة الأخطاء أنظف وأكثر اصطلاحية:
-
ربط مرن: ربط URI والاستعلام يحترم الآن
encoding.UnmarshalText، مما يمنحك مزيداً من التحكم في إلغاء تسلسل الأنواع المخصصة (#4203). -
خيار المسار المُرمّز: خيار محرك جديد يتيح لك اختيار استخدام المسار المُرمّز (الخام) للتوجيه (#4420).
-
Protocol Buffers في تفاوض المحتوى: يدعم
contextالآن Protocol Buffers كنوع محتوى قابل للتفاوض، مما يجعل تكامل استجابات نمط gRPC أسهل (#4423). -
التأخير الملوّن في المسجّل: يعرض المسجّل الافتراضي الآن التأخير بألوان، مما يسهّل اكتشاف الطلبات البطيئة بنظرة سريعة (#4146).
الأداء والتحسينات
- تحسينات شجرة الموجّه: تحسينات متعددة لشجرة Radix تقلل التخصيصات وتسرّع تحليل المسارات:
- تحسين الاسترداد: قراءة تتبع المكدس أصبحت أكثر كفاءة (#4466).
- تحسينات المسجّل: يمكن الآن تخطي مخرجات سلسلة الاستعلام عبر التكوين (#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: تحسين سلوك hijack لنمذجة دورة حياة الاستجابة بشكل صحيح (#4373).
- الاسترداد:
http.ErrAbortHandlerيتم قمعه الآن في وسيط الاسترداد كما هو مقصود (#4336). - عدم تطابق إصدار التصحيح: إصلاح سلسلة إصدار غير صحيحة مُبلّغ عنها في وضع التصحيح (#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 وأخبرنا برأيك!