Protocol Buffers (Protobuf) – wieloplatformowy i otwartoźródłowy format wymiany danych komputerowych wykorzystywany do serializacji danych strukturalnych. Został przygotowany przez Google w celu przechowywania i przesyłania dowolnych ustrukturyzowanych informacji w postaci binarnej. Miał zastąpić cięższy i wolniejszy format XML.
Jest domyślnie stosowany jako język opisu interfejsu w protokole gRPC.
Charakterystyka Schematy struktur danych oraz serwisy są definiowane w języku pośrednim zapisywanym w plikach z rozszerzeniem .proto – przykład takiego pliku został przedstawiony poniżej: syntax = "proto3";
service ServiceMethod { rpc DoSomething(Input) returns (Output); }
message Input { int64 id = 1; string data = 2; string address = 3; }
message Output{ bool is_success = 1; string response = 2; } Serwis składa się z zestawu zdalnych funkcji posiadających parametry wejścia i wyjścia oraz informację, czy komunikat jest elementem strumienia. Komunikat jest definiowany przez trzy pola: jego typ, nazwę własną oraz liczbę określającą, w jakiej kolejności poszczególne pola mają występować – ze względu na przesyłanie danych w postaci binarnej jest to konieczne do późniejszego poprawnego odczytania.
Tak przygotowany plik jest wykorzystywany następnie przez kompilator o nazwie protoc do wygenerowania kodu źródłowego dla obsługiwanego języka programowania. Przesyłane informacje, dzięki utrzymanej w ten sposób strukturze danych, mogą być potem łatwo rozczytane i obsłużone przez program kliencki.
Przypisy
Linki zewnętrzne Oficjalna strona projektu Kod źródłowy na platformie GitHub
Kategoria:Formaty plików komputerowych Kategoria:Oprogramowanie na licencji BSD Kategoria:Produkty Google