версии библиотеки grpc на .net и java

#java #.net #grpc #grpc-java

Вопрос:

Я создаю клиент для своего GRPC api на Java и .net. Я хочу понять, есть ли какое-либо сопоставление между библиотеками java и .net. Я вижу, что библиотеки Google protobuf совпадают между миром .net и java. Например, версия 3.19.x является одной из самых последних как в java, так и в мире .net. https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java amp; https://www.nuget.org/packages/Google .Protobuf /

Существует ли аналогичная взаимосвязь, о которой мне нужно знать, когда речь заходит о используемых библиотеках grpc. Если я хочу использовать более старую версию библиотеки, тогда сделайте версию в обоих.net и java должны совпадать на каком-то уровне? Любая информация об этом будет полезна

java

  <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-protobuf</artifactId>
      <version>1.41.0</version>
    </dependency>
 

.net

     <PackageReference Include="Grpc" Version="2.31.0" />
    <PackageReference Include="Grpc.Tools" Version="2.31.0" PrivateAssets="All" />
 

Ответ №1:

Они не должны совпадать, но, как и в случае с любыми зависимостями, полезно иметь политику поддержания валюты.

Пакеты SDK предоставляют механизм для получения сообщений protobuf в ваше приложение и из него. Формат on-the-wire не должен меняться в зависимости от версии SDK.

Формат on-the-wire должен определяться syntax (в настоящее proto3 время), определенным в файлах определения буфера протокола (proto), которые совместно используются клиентами и серверами, которые его реализуют.