Protocol Buffers

Protocol Buffers
Autor Google
Pierwsze wydanie 7 lipca 2008; około 17 lat temu
Aktualna wersja stabilna 35.0
(19 maja 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
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[1].

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

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

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

Przypisy

  1. Protocol Buffers, czyli 160 razy szybsza alternatywa dla XML’a. StormIT. [dostęp 2023-11-13]. (pol.).
  2. 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.).
  3. Tworzenie komunikatów Protobuf dla aplikacji platformy .NET. Microsoft Learn. [dostęp 2023-11-13]. (pol.).
  4. Bufory protokołu. Microsoft Learn. [dostęp 2023-11-13]. (pol.).

Linki zewnętrzne

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Kembali kehalaman sebelumnya