Как устроен бинарный wire format protobuf? Почему он компактнее JSON? Что такое tag/field number и зачем varint?