Буферы протокола
-
Обзор Protocol Buffers
- Protocol Buffers (Protobuf) — кроссплатформенный формат данных для сериализации структурированных данных.
- Разработан Google для упрощения сетевого взаимодействия и хранения данных.
- Основан на языке описания интерфейса, генерирующем исходный код для анализа байтов.
-
Особенности и использование
- Протоколы разработаны для простоты и производительности, меньше и быстрее, чем XML.
- Широко используются в Google для RPC и других межмашинных взаимодействий.
- Имеют аналоги в Apache Thrift, Ion и Microsoft Bond, но сфокусированы на gRPC.
-
Компиляция и генерация кода
- Схемы данных и сервисов описываются в файле .proto и компилируются с помощью protoc.
- Компиляция генерирует код для разных языков программирования.
-
Ограничения и поддержка
- Нет единой спецификации, подходит для небольших блоков данных.
- Не поддерживает сжатие «из коробки» и не полностью поддерживается в не объектно-ориентированных языках.
-
Пример использования
- Схема связывает типы данных с именами полей, используя целые числа для идентификации.
- Сообщения «Точка» и «Line» демонстрируют композицию в буферах протокола.
-
Поддержка языков
- Protobuf 2.0 поддерживает C++, Java, C#, Python.
- Protobuf 3.0 поддерживает C++, Java, Python, Go, Ruby, Objective-C, C#, JavaScript.
- Сторонние реализации доступны для многих языков программирования.
-
Дополнительная информация
- Ссылки на документацию и репозиторий на GitHub.
Полный текст статьи: