factograf
PL
Zaloguj się

format wymiany danych komputerowych

Protocol Buffers

Najważniejsze

data utworzenia lub powstania2001
data wydania7 lipca 2008
jest toformat serializacji danych, Interface Description Language, wolne oprogramowanie
Wszystkie dane z infoboksu 7
Autor
Google
Pierwsze wydanie
7 lipca 2008; około 18 lat temu
Aktualna wersja stabilna
36.2(17 września 2026)
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

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.

Czytaj dalej

W 15 językach

Tekst z Wikipedii, CC BY-SA 4.0 · Artykuł źródłowy