Protocol Buffers
Autor | |
---|---|
Pierwsze wydanie | 7 lipca 2008; ponad 16 lat temu |
Aktualna wersja stabilna | 25.0 – 1 listopada 2023; ponad 9 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
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
- ↑ Release Protocol Buffers 25.0. GitHub. [dostęp 2023-11-13].
- ↑ Protocol Buffers, czyli 160 razy szybsza alternatywa dla XML’a. StormIT. [dostęp 2023-11-13]. (pol.).
- ↑ 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.).
- ↑ Tworzenie komunikatów Protobuf dla aplikacji platformy .NET. Microsoft Learn. [dostęp 2023-11-13]. (pol.).
- ↑ Bufory protokołu. Microsoft Learn. [dostęp 2023-11-13]. (pol.).
Linki zewnętrzne
- Oficjalna strona projektu (ang.)
- Kod źródłowy na platformie GitHub (ang.)