Protocol Buffers (protobuf) est un mécanisme extensible, neutre vis-à-vis du langage et de la plateforme, conçu pour la sérialisation de données structurées. Similaire au format XML, il se distingue par sa taille plus réduite, sa rapidité accrue et sa simplicité. Vous définissez la structure de vos données une seule fois, puis vous utilisez un code source généré automatiquement pour lire et écrire facilement ces données structurées depuis et vers divers flux de données, dans de nombreux langages de programmation. Les Protocol Buffers sont fréquemment utilisés pour définir des structures de données dans les protocoles réseau, les fichiers de configuration et le stockage de données. Ils offrent une méthode efficace pour sérialiser et désérialiser les données, ce qui les rend particulièrement adaptés aux applications haute performance. L'avantage principal de protobuf réside dans son efficacité en termes de taille et de vitesse par rapport à d'autres formats de sérialisation comme XML ou JSON. La définition du schéma s'effectue dans un fichier « .proto », qui est ensuite compilé à l'aide du compilateur « protoc » pour générer du code dans divers langages tels que C++, Java, Python, Go, et bien d'autres. Ce code généré fournit les méthodes nécessaires pour sérialiser et désérialiser les données conformément au schéma défini.