Подтвердить что ты не робот

Как буфер протокола обрабатывает управление версиями?

Как буферы протокола обрабатывают управление версиями типов?

Например, когда мне нужно изменить определение типа с течением времени? Как добавлять и удалять поля.

Спасибо

4b9b3361

Ответ 1

Google разработал protobuf, чтобы быть довольно прощающим с версией:

  • непредвиденные данные либо хранятся как "расширения" (что делает их безопасными в обратном направлении), либо тихо отбрасываются в зависимости от реализации
  • новые поля обычно добавляются как "необязательные", что означает, что старые данные могут быть успешно загружены.

Однако:

  • не перенумеровать поля - это приведет к поломке существующих данных
  • обычно вы не должны изменять способ сохранения какого-либо данного поля (т.е. из 32-битного числа с фиксированным числом в "varint" )

В общем, хотя - это будет просто работать, и вам не нужно беспокоиться о версировании.