@MuffinLover

Как парсить из стрима probobuf на питоне?

Хочу получать из сокета протобуф сообщения
Присматриваюсь к python better-proto библиотеке, но возникает 2 вопроса
1)В апи библиотеке синтаксис парсинга выглядит так: Message.parse(bytes)
Перед тем как передать мне нужно запросить bytes, но сколько нужно вычитать байт из сокета заранее же не ясно и оно чисто теоретически может меняться
2)Можно ли не зная заранее какой обьект придет вычитывать и парсить?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
@rPman
Автоматически как я понимаю не получится, нужно где то (в идеале в начале сообщения) указать либо размер этого сообщения либо информацию (тип объекта например) по которой этот размер вычисляется однозначно. Т.е. ты будешь вынужден загрузить сначала эту информацию, вычислить размер следующего блока и загрузить его, но можно оптимизировать, загрузив минимальный объем заранее, если тип окажется не тот что имеет минимальный размер, догрузить оставшиеся байты и декодировать их сумму как следует.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы