Ответы пользователя по тегу Protocol buffers
  • Как преобразовать Protobuf Descriptor в .proto?

    @xandox
    По поводу первого - просто сделай print serialized_pb должно помомчь
    По поводу второго - в общем случае никак. Структура, как таковая, в сериализованых данных не хронится. Сериализованые данные выглядят примерно так
    [Tag|Type|Value]
    где Tag - это тэг поля (то есть - имя поля ты уже не знаешь, и модификаторы его тоже (required, optional, repeated))
    Type - смотри в доках, актуалльные значения 0, 1, 2, 5 (вроде)
    При этом Tag и Type идут вместе (Tag << 3 | Type) и закодированы varint-ом (что таакое - смотри в доках)
    Самая засада в том, что вложеные messages сериализованы точно так же как и bytes и string, то есть если ты не знаешь, что тут должен быть messege, то только попробовав его разобрать можешь это понять. В общем из сериализованых данных вытащить структуру - частично можно, но востоновить в 100% не получится.
    Ответ написан
    3 комментария