Gin 1.12.0 Duyurusu: BSON Desteği, Context İyileştirmeleri, Performans ve Daha Fazlası
Gin v1.12.0 Yayınlandı
Yeni özellikler, önemli performans iyileştirmeleri ve bir dizi hata düzeltmesiyle dolu Gin v1.12.0’ın yayınını duyurmaktan mutluluk duyuyoruz. Bu sürüm, Gin’in modern protokoller için desteğini derinleştirir, geliştirici deneyimini iyileştirir ve projenin hızlı ve hafif kalma geleneğini devam ettirir.
🌟 Ana Özellikler
-
BSON Protokol Desteği: İşleme katmanı artık BSON kodlamasını destekliyor; daha verimli ikili veri alışverişinin kapısını açıyor (#4145).
-
Yeni Context Yöntemleri: İki yeni yardımcı, hata işlemeyi daha temiz ve deyimsel hale getirir:
-
Esnek Bağlama: URI ve sorgu bağlama artık
encoding.UnmarshalTextöğesine uyuyor; özel tür seri durumdan çıkarma üzerinde daha fazla kontrol sağlıyor (#4203). -
Kaçan Yol Seçeneği: Yeni bir motor seçeneği, yönlendirme için kaçan (ham) istek yolunu kullanmayı seçmenizi sağlar (#4420).
-
İçerik Müzakeresinde Protocol Buffers:
contextartık Protocol Buffers’ı müzakere edilebilir bir içerik türü olarak destekliyor ve gRPC tarzı yanıtlar tümleştirmeyi kolaylaştırıyor (#4423). -
Logger’da Renklendirilmiş Gecikme: Varsayılan günlükçü artık gecikmeyi renkle işliyor; yavaş istekleri bir bakışta tespit etmeyi kolaylaştırıyor (#4146).
🚀 Performans ve İyileştirmeler
- Yönlendirici Ağacı Optimizasyonları: Radix ağacında yapılan birden fazla iyileştirme, ayırmaları azaltır ve yol ayrıştırmasını hızlandırır:
- Kurtarma Optimizasyonu: Yığın izi okuma artık daha verimli (#4466).
- Logger İyileştirmeleri: Sorgu dizesi çıkışı artık yapılandırma yoluyla atlanabilir (#4547).
- Unix Soket Güveni: Unix soketi üzerinden istekler geldiğinde
X-Forwarded-Forbaşlıkları artık her zaman güvenilir (#3359). - Temizleme Güvenliği: Temel
http.ResponseWriterhttp.FlusheruygulamadığındaFlush()artık panik oluşturmuyor (#4479). - Kod Kalitesi Yeniden Düzenlemesi:
maps.Copyvemaps.Cloneile daha temiz harita işleme, sihirli sayıları değiştiren adlandırılmış sabitler, modernize edilmiş range-over-int döngüleri ve daha fazlası (#4352, #4333, #4529, #4392).
🐛 Hata Düzeltmeleri
- Yönlendirici Paniği Düzeltildi:
RedirectFixedPathetkinleştirildiğindefindCaseInsensitivePathReciçinde meydana gelen panik çözüldü (#4535). - Veri İşlemesinde Content-Length:
Data.RenderartıkContent-Lengthbaşlığını doğru yazıyor (#4206). - Birden Fazla Başlıklı ClientIP:
ClientIPartık birden fazlaX-Forwarded-Forbaşlığı değeri olan istekleri doğru şekilde işliyor (#4472). - Bağlama Kenar Durumları: Bağlamada boş değer hatası düzeltildi (#2169) ve form bağlamasında boş dilim/dizi işlemesi iyileştirildi (#4380).
- Literal Iki Nokta Rotaları: Literal iki nokta içeren rotalar artık
engine.Handler()ile doğru şekilde çalışıyor (#4415). - Dosya Tanımlayıcısı Sızıntısı:
RunFdartık kaynak sızıntısını önlemek içinos.Fileişlemcisini doğru şekilde kapatıyor (#4422). - Hijack Davranışı: Hijack davranışı, yanıt yaşam döngüsünü doğru şekilde modellemek için iyileştirildi (#4373).
- Kurtarma:
http.ErrAbortHandlerartık amaçlandığı gibi kurtarma ara yazılımında bastırılıyor (#4336). - Hata Ayıklama Sürüm Uyuşmazlığı: Hata ayıklama modunda bildirilen yanlış sürüm dizesi düzeltildi (#4403).
🔧 Derleme, Bağımlılık ve CI Güncellemeleri
- Go 1.25 Minimum: Minimum desteklenen Go sürümü artık 1.25 olup, CI iş akışları buna göre güncellenmiştir (#4550).
- BSON Bağımlılığı Yükseltmesi: BSON bağlama bağımlılığı
mongo-driverv2 öğesine yükseltilmiştir (#4549).
Gin 1.12.0, topluluğumuzun — katkıda bulunanlar, gözden geçirenler ve kullanıcılar — adanmışlığını yansıtır. Her sürümde Gin’i daha iyi hale getirdiğiniz için teşekkür ederiz.
Gin 1.12.0’ı denemeye hazır mısınız? GitHub’ta yükseltme yapın ve bize ne düşündüğünüzü söyleyin!