Protocol Buffers
| Autor | |
|---|---|
| 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
- ↑ 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.)
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.
- 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:
- 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.
- 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.
- 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.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.