Protocol Buffers
# Protocol Buffers

Protocol Buffers (protobuf) ist ein Datenformat zur Serialisierung mit einer Schnittstellen-Beschreibungssprache. Es wurde von Google Inc. entwickelt und teilweise unter einer 3-Klausel-BSD-Lizenz veröffentlicht. Für eine Vielzahl an Programmiersprachen wird eine offizielle Implementierung von Google als freie Software unter Apache-Lizenz 2.0 bereitgestellt. Zu den offiziell unterstützten Programmiersprachen zählen unter anderem C#, C++, Go, Objective-C, Java, Python und Ruby. Viele weitere Programmiersprachen wie beispielsweise C oder Swift werden durch Projekte von Dritten unterstützt.

Hauptsächliche Entwurfskriterien der Protocol Buffers sind Einfachheit und Performance. Daher ist es als ein Binärformat konzipiert im Gegensatz zu XML, welches auf ein textuelles Format setzt.

Protocol Buffers wurden von 2001 bis 2008 intern bei Google entwickelt. Seit 2008 sind der Compiler und die Bibliotheken unter einer Open-Source-Lizenz verfügbar, und man kann die Weiterentwicklung durch Google öffentlich verfolgen. Google verwendet Protocol Buffers zur Speicherung und zum Austausch strukturierter Daten und als Basis für ein RPC-System zur intermaschinellen Kommunikation.

gRPC nutzt Protocol Buffers als Beschreibungssprache für RPC-Schnittstellen und als Format für die Client-Server-Kommunikation.

