ФОРМАТ · BINARY
Protocol Buffers
Схемный бинарный обмен сообщениями с номерами полей.
- Расширения
- proto, pb
- MIME type
- Единого общего зарегистрированного типа для всех protobuf-сообщений нет; встречаются разные значения
- Представление
- binary
- Потоковая обработка
- да
- Комментарии
- нет
- Поддержка схемы
- Обязателен контракт .proto
- Порядок
- repeated упорядочен; порядок полей wire не является смыслом
- null
- Зависит от presence и схемы; общего null нет
- Diff
- Для .proto — хорошая; для wire — плохая
- Архивация
- Храните .proto и версию компилятора
Преимущества
- Компактные типизированные сообщения
Ограничения
- Поток требует собственного framing
Типичные ошибки
- Переиспользовать номер удалённого поля
Маленький пример
syntax = "proto3";
message Item { int64 id = 1; string name = 2; }
Среда: protoc, устанавливается отдельно; создаёт example.desc и может заменить его, если файл уже есть. Используйте пустой каталог.
protoc --descriptor_set_out=example.desc example.proto