Protocol buffers 推荐的分发GRPC客户端的机制是什么?

Protocol buffers 推荐的分发GRPC客户端的机制是什么?,protocol-buffers,microservices,grpc,service-discovery,Protocol Buffers,Microservices,Grpc,Service Discovery,我已经创建了一个GRPC服务器,并希望以各种语言向其分发“SDK”客户端 我可以使用proto命令(例如python)相对轻松地生成客户机: 类似地,对于java/ruby等 需要手动将生成的代码复制到客户端应用程序 我宁愿我的消费者不必自己创建生成的LIB并集成它们。(尤其是在向服务添加新功能时) 例如,在python的上下文中,按照 pip安装MyProtoClient 是否有机制将生成的库打包到适当的规范包管理器(即pip/maven/npm等) 此外,是否有一种方法可以调用服务本身来生成

我已经创建了一个
GRPC
服务器,并希望以各种语言向其分发“
SDK
”客户端

我可以使用
proto
命令(例如
python
)相对轻松地生成客户机:

类似地,对于
java/ruby

需要手动将生成的代码复制到客户端应用程序

我宁愿我的消费者不必自己创建生成的LIB并集成它们。(尤其是在向服务添加新功能时)

例如,在
python
的上下文中,按照

pip安装MyProtoClient

是否有机制将生成的库打包到适当的规范包管理器(即
pip
/
maven
/
npm
等)


此外,是否有一种方法可以调用服务本身来生成源库(或返回它正在实现的相应proto?

没有一个项目专门用于为生成的源代码生成包。googleapis'/是一个针对多种语言的项目,但它也有自己的代码生成,并且是混合在一起的。您可以看到(对于所有这些API,请查看特定的API,如Pub/Sub)


gRPC服务器可以通过公开其定义。每种语言都有一个预构建的服务实现。例如,在Java中是
io.grpc.protobuf.services.ProtoReflectionService
,而在Go中是
google.golang.org/grpc/reflection
。该服务不返回.proto文件,而是返回“描述符”,这是protobuf反射和代码生成工具使用的正常格式。

您是否在寻求一种简单的方法,以各自的语言为RPC客户端推送包?现在,您必须生成它们并将它们推送到各个存储库中,并在找到它们的位置的包管理器中指定它们。例如,在npm中,这是npm注册表,Ruby是gem注册表,等等。
python -m grpc_tools.protoc -I. --python_out=/tmp/python --grpc_python_out=/tmp/python MyProtoc.proto