Влияют ли параметры в protobufs на размеры сообщений? - PullRequest
0 голосов
/ 30 сентября 2018

Я использую protobufs для отправки сообщений между различными узлами в проекте, и для удобства я хотел бы добавить некоторые статические метаданные для своих сообщений.Например, для каждого поля в сообщении я хотел бы определить удобочитаемое имя (например, «Ответное сообщение» вместо «resp_msg»), которое GUI может использовать в качестве метки при отображении данных.Эту информацию не нужно сериализовать и передавать по проводам.

Я искал, позволяют ли protobufs определять эти метаданные, и я указал на использование пользовательских опций.Мне показалось, что пользовательские опции внутренне реализованы как дополнительные данные внутри сообщений.Так ли это, или это полностью статические метаданные, которые не сериализуются при использовании этих протобуфов?т.е. если я добавлю опции к своим сообщениям, изменится ли структура моих сериализованных сообщений?

1 Ответ

0 голосов
/ 30 сентября 2018

, если вы имеете в виду пользовательские параметры в схеме .proto ;нет, они не являются частью полезной нагрузки.Они могут или не могут быть доступными для проверки во время выполнения - это во многом зависит от конкретной библиотеки и инструментов, которые вы используете, но: если инструменты для вашей целевой платформы встраивают скомпилированные метаданные DescriptorProto (DescriptorProto отображается приблизительно в message в терминах .proto) в сгенерированный код, тогда вы действительно сможете использовать API для извлечения этих данных - или в худшем случае: десериализовать их в DescriptorProto (как определено в descriptor.proto) и считайте его вручную.

Однако это не гарантируется.

Итак: это зависит от:

  • какая библиотека, платформа и инструментальные средствавы используете
  • независимо от того, расширяют ли ваши пользовательские параметры такие вещи, как DescriptorProto, против расширения ваших реальных сообщений;если вы расширяете фактические сообщения дополнительными полями, то является частью полезной нагрузки сообщения и увеличивает размер сообщения
...