Что такое Protobuf

«Что такое Protobuf» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Protobuf (Protocol Buffers) — это бинарный формат сериализации данных от Google. Он компактнее и быстрее JSON/XML, т.к. использует бинарное представление и схему (*.proto файлы).

Пример:

message User {
  required string name = 1;
  optional int32 age = 2;
}

Использование в Kotlin:

val user = User.newBuilder().setName("Alex").setAge(25).build()
val bytes = user.toByteArray() // Сериализация
val parsedUser = User.parseFrom(bytes) // Десериализация

Плюсы:

  • Меньший размер данных
  • Быстрая сериализация/десериализация
  • Поддержка генерации кода для разных языков

Минусы:

  • Нечитаемость без схемы
  • Сложнее дебажить