Может ли proto2 общаться с proto3? - PullRequest
0 голосов
/ 19 июня 2019

У меня есть два приложения, которые общаются друг с другом через сообщения GPB. Оба использовали proto3, но выяснилось, что нужно будет использовать proto2. Если сообщения совпадают, может ли одна программа использовать proto2 для компиляции, в то время как другая использует proto3? Или они должны быть скомпилированы с той же версией прото.

1 Ответ

1 голос
/ 20 июня 2019

Формат проводов очень похож, поэтому он будет работать до некоторой степени. Однако есть несколько предостережений:

  • Различия полей required / optional не существует на proto3. Вы должны заполнить все поля optional на стороне proto2, чтобы избежать ошибок при пропуске обязательных полей.
  • Когда proto3 кодирует поля, любые поля с нулевым значением будут отсутствовать при декодировании на стороне proto2. Если вы укажете ноль в качестве значения по умолчанию на стороне proto2, все должно получиться нормально.
  • Расширения и Любой тип будет довольно сложно использовать таким образом, чтобы он был совместим с обоими.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...