Protobuf-py: Protobuf for Python, without compromises
Buf annonce protobuf-py, une implémentation complète de Protocol Buffers écrite en Python qui passe la suite de conformité binaire et JSON pour proto2, proto3 et editions et prend en charge extensions, options personnalisées, champs inconnus, messages dynamiques et types bien connus. La bibliothèque génère du code Python lisible et typé, stocke les messages comme objets Python (__slots__) sans dépendances d'exécution et fonctionne en pur Python 3.10+, avec un accélérateur Rust optionnel qui rend les performances comparables à upb. Elle vise à offrir à la fois l'exhaustivité d'une implémentation conforme au standard et une API idiomatique pour Python, en évitant les compromis des autres options comme le paquet de Google, conçu pour C++/Java, ou betterproto, qui est incomplet. En gardant les données comme objets Python, la lecture de champs devient un simple accès d'attribut, les fichiers générés sont lisibles et typés, les imports sont relatifs et les types se résolvent via un registre explicite plutôt que par un pool global. Les benchmarks montrent qu'upb gagne en parsing isolé mais protobuf-py dépasse upb sur des charges réelles end-to-end, l'accélérateur Rust étant optionnel avec des roues précompilées disponibles, et le projet, développé par l'équipe Buf, fournit documentation, code et instructions pour l'essayer.