Как работает protobuf encoding?

Middle
199 просмотров
AFK Offer AI

Protobuf — бинарный формат, каждое поле кодируется как (field_number, wire_type, value). Wire types: varint (int, bool), 64-bit (double, fixed64), length-delimited (string, bytes, embedded messages), 32-bit (float, fixed32). Числа кодируются varint — маленькие числа занимают меньше байт. Строки — длина + данные. Вложенные сообщения — как length-delimited. Порядок полей не важен, неизвестные поля сохраняются. Результат компактнее JSON в 3-10 раз и парсится быстрее. За это платишь читаемостью — бинарный формат не посмотришь глазами.

Следующий вопрос

Как работать с sorting в API?