Protocol Buffers

Z Wikipedii, wolnej encyklopedii
Protocol Buffers
Autor Google
Pierwsze wydanie 7 lipca 2008; ponad 15 lat temu
Aktualna wersja stabilna 25.0 – 1 listopada 2023; ponad 5 miesięcy temu[1]
Język programowania C++, C#, Java, Python, JavaScript, Ruby, Go, PHP, Dart
Platforma sprzętowa wieloplatformowy
Rodzaj format wymiany danych komputerowych, kompilator IDL
Licencja BSD
Strona internetowa

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[2].

Jest domyślnie stosowany jako język opisu interfejsu w protokole gRPC[3].

Charakterystyka[edytuj | edytuj kod]

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[3]. 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[4].

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[5].

Przypisy[edytuj | edytuj kod]

  1. Release Protocol Buffers 25.0. GitHub. [dostęp 2023-11-13].
  2. Protocol Buffers, czyli 160 razy szybsza alternatywa dla XML’a. StormIT. [dostęp 2023-11-13]. (pol.).
  3. a b Włodzimierz Kozłowski: gRPC, czyli mikrousługi po nowemu (staremu)! – część 1. Bulldog Job, 2021-12-21. [dostęp 2023-11-13]. (pol.).
  4. Tworzenie komunikatów Protobuf dla aplikacji platformy .NET. Microsoft Learn. [dostęp 2023-11-13]. (pol.).
  5. Bufory protokołu. Microsoft Learn. [dostęp 2023-11-13]. (pol.).

Linki zewnętrzne[edytuj | edytuj kod]