🍋
Menu
.protobuf Data

Protobuf (Protocol Buffers)

Protocol Buffers (Protobuf) — механизм сериализации структурированных данных, не зависящий от языка и платформы, разработанный Google. Файлы .proto определяют структуры данных, из которых генерируется эффективный код для сериализации и десериализации.

MIME-тип

application/x-protobuf

Тип

Бинарный

Сжатие

Без потерь

Преимущества

  • + 10-100x smaller and faster than JSON/XML
  • + Schema-driven with generated type-safe code
  • + Backward-compatible schema evolution via field numbers
  • + Standard wire format for gRPC

Недостатки

  • Not human-readable — binary format requires tooling
  • Requires .proto schema definition and code generation step
  • Not suitable for human-edited configuration files

Когда использовать .PROTOBUF

Используйте Protobuf для gRPC API, межсервисного взаимодействия, мобильных API с ограниченной пропускной способностью и везде, где нужна эффективная типизированная сериализация.

Технические детали

Файлы .proto определяют типы сообщений с нумерованными полями. Компилятор protoc генерирует код для C++, Java, Python, Go и других языков. Бинарная кодировка использует varint и wire types для компактности. Протокол поддерживает обратную совместимость — новые поля добавляются с новыми номерами.

История

Google разработал Protocol Buffers для внутреннего использования и открыл исходный код в 2008 году. Proto3 (2016) упростил язык, убрав обязательные поля и значения по умолчанию. Protobuf лежит в основе gRPC — RPC-фреймворка Google.

Конвертировать из .PROTOBUF

Конвертировать в .PROTOBUF

Связанные форматы

Связанные термины