Protobuf-py: Python için tavizsiz Protocol Buffers
Sıfırdan yazılan protobuf-py, tüm Protobuf spesifikasyonunu destekleyip Rust hızlandırıcısıyla Google'ın C tabanlı upb motoruna denk performans sunuyor.
Yeni duyurulan protobuf-py, Python için sıfırdan yazılmış bir Protocol Buffers kütüphanesi olarak öne çıkıyor. Google'ın conformance test paketindeki tüm binary ve JSON senaryolarını proto2, proto3 ve editions genelinde geçiyor; extension, özel seçenekler, bilinmeyen alanlar, dinamik mesajlar ve well-known type'lar dahil spesifikasyonun tamamını destekliyor. Kütüphane, saf Python 3.10+ üzerinde çalışıyor, harici bağımlılık gerektirmiyor ve isteğe bağlı Rust hızlandırıcısı sayesinde üretim iş yüklerinde Google'ın C tabanlı upb motoruyla rekabet edebiliyor.
Google'ın resmi paketi upb motorunu kullanıyor; mesaj verisi C arena'sında tutulup Python nesnesi sadece bir handle görevi görüyor, bu da HasField, WhichOneof gibi C++/Java kökenli, Python'a yabancı bir API ile sonuçlanıyor. betterproto gibi alternatifler daha kullanıcı dostu olsa da proto3 dışını desteklemiyor. protobuf-py ise mesaj verisini doğrudan Python nesnesi olarak tutuyor; üretilen kod okunabilir, tip destekli ve oneof'lar pattern-matching ile kullanılabiliyor, ayrıca göreli import ve açık bir registry mekanizması sayesinde paketleme sorunları ortadan kalkıyor.
Proje aslında bir ConnectRPC implementasyonu olan connect-py için sağlam bir mesaj katmanı arayışından doğdu. Performans testlerinde izole parse/serialize işlemlerinde upb önde olsa da, gerçek dünya senaryosunu yansıtan uçtan uca bir iş akışında protobuf-py, upb'yi geçebiliyor; çünkü parse sonrası alan okumaları ekstra çeviri maliyeti gerektirmiyor. Bu sonuç, Python geliştiricilerine artık eksiksiz spesifikasyon desteği ile idiomatic API arasında seçim yapma zorunluluğunu ortadan kaldırıyor.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz