Gin 1.12.0 Duyurusu: BSON Desteği, Context İyileştirmeleri, Performans ve Daha Fazlası
Gin v1.12.0 Yayınlandı
Gin v1.12.0 sürümünün yayınlandığını heyecanla duyuruyoruz. Bu sürüm yeni özellikler, anlamlı performans iyileştirmeleri ve sağlam bir dizi hata düzeltmesiyle doludur. Bu sürüm, Gin’in modern protokoller için desteğini derinleştiriyor, geliştirici deneyimini iyileştiriyor ve projenin hızlı ve yalın kalma geleneğini sürdürüyor.
🌟 Temel Özellikler
-
BSON Protokol Desteği: İşleme katmanı artık BSON kodlamayı destekliyor, daha verimli ikili veri alışverişinin kapısını açıyor (#4145).
-
Yeni Context Yöntemleri: İki yeni yardımcı, hata yönetimini daha temiz ve daha deyimsel hale getiriyor:
-
Esnek Bağlama: URI ve sorgu bağlama artık
encoding.UnmarshalText’i kabul ediyor, özel tür deserileştirmesi üzerinde daha fazla kontrol sağlıyor (#4203). -
Kaçış Karakterli Yol Seçeneği: Yeni bir motor seçeneği, yönlendirme için kaçış karakterli (ham) istek yolunu kullanmayı tercih etmenizi sağlıyor (#4420).
-
İçerik Müzakeresinde Protocol Buffers:
contextartık Protocol Buffers’ı müzakere edilebilir bir içerik türü olarak destekliyor, gRPC tarzı yanıtların entegrasyonunu kolaylaştırıyor (#4423). -
Logger’da Renkli Gecikme: Varsayılan logger artık gecikmeyi renkli olarak gösteriyor, yavaş istekleri bir bakışta tespit etmeyi kolaylaştırıyor (#4146).
🚀 Performans ve İyileştirmeler
- Yönlendirici Ağaç Optimizasyonları: Radix ağacına yapılan birden fazla iyileştirme, tahsisleri azaltıyor ve yol ayrıştırmayı hızlandırıyor:
- Kurtarma Optimizasyonu: Yığın izi okuma artık daha verimli (#4466).
- Logger İyileştirmeleri: Sorgu dizesi çıktısı artık yapılandırma ile atlanabiliyor (#4547).
- Unix Soket Güveni: İstekler Unix soketi üzerinden geldiğinde
X-Forwarded-Forbaşlıklarına artık her zaman güveniliyor (#3359). - Flush Güvenliği: Alttaki
http.ResponseWriterhttp.FlusheruygulamadığındaFlush()artık panic oluşturmuyor (#4479). - Kod Kalitesi Yeniden Düzenlemeleri:
maps.Copyvemaps.Cloneile daha temiz map işleme, sihirli sayılar yerine adlandırılmış sabitler, modernize edilmiş range-over-int döngüleri ve daha fazlası (#4352, #4333, #4529, #4392).
🐛 Hata Düzeltmeleri
- Yönlendirici Panic Düzeltildi:
RedirectFixedPathetkinkenfindCaseInsensitivePathRec’deki panic çözüldü (#4535). - Data Render’da Content-Length:
Data.RenderartıkContent-Lengthbaşlığını doğru şekilde yazıyor (#4206). - Birden Fazla Başlıkla ClientIP:
ClientIPartık birden fazlaX-Forwarded-Forbaşlık değerine sahip istekleri doğru şekilde işliyor (#4472). - Bağlama Sınır Durumları: Bağlamada boş değer hataları düzeltildi (#2169) ve form bağlamada boş dilim/dizi işleme iyileştirildi (#4380).
- Literal İki Noktalı Rotalar: Literal iki nokta içeren rotalar artık
engine.Handler()ile doğru çalışıyor (#4415). - Dosya Tanımlayıcı Sızıntısı:
RunFdartık kaynak sızıntılarını önlemek içinos.Filetanıtıcısını düzgün şekilde kapatıyor (#4422). - Hijack Davranışı: Yanıt yaşam döngüsünü doğru şekilde modellemek için hijack davranışı iyileştirildi (#4373).
- Kurtarma:
http.ErrAbortHandlerartık kurtarma ara katmanında istenildiği gibi bastırılıyor (#4336). - Hata Ayıklama Sürüm Uyumsuzluğu: 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: Desteklenen minimum Go sürümü artık 1.25, CI iş akışları buna göre güncellendi (#4550).
- BSON Bağımlılık Yükseltmesi: BSON bağlama bağımlılığı
mongo-driverv2’ye yükseltildi (#4549).
Gin 1.12.0, topluluğumuzun — katkıda bulunanlar, inceleyenler ve kullanıcılar — özverisinini yansıtmaktadır. Her sürümde Gin’i daha iyi yaptığınız için teşekkür ederiz.
Gin 1.12.0’ı denemek için hazır mısınız? GitHub’da yükseltin ve düşüncelerinizi bize bildirin!