-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
[RFC] About how to import *.proto
files in different SDK of openSergo | 关于如何在 SDK 项目中比较方便地引用 proto
#3
Comments
方案二: 模式:" 利用 优点: 缺点: |
方案三: (来自 模式:“ 使用开源社区 https://github.com/bufbuild 的 https://github.com/bufbuild/buf 项目 关于 主要是用于方便快速生成
优点(基于本社区考虑): 缺点(基于本社区考虑): 我的改进思路: 思路:主要利用 具体实现:通过 |
也可以考虑做一个用于初始化opensergo application的CLi工具,比如:
或
这个初始化项目的过程中,下载proto文件到本地,存根还是在本地通过protoc生成 对于SDK而言,及时同步proto版本还是很有必要的,而且还可以根据需要对其进行扩展,保持SDK的适度可扩展性。 |
初步集成
|
detail refer to #5 |
现在 OpenSergo 正在快速推进中, 越来越多的 proto 文件会加入到项目中。
因此需要考虑如何去组织 opensergo/opensergo-proto 项目,使能在异构语言
SDK
以及不同功能模块的中能便捷的引入 proto 文件进行开发。关于
SDK
如何引用proto
,我总结为两种模式:SDK
引用proto文件
,自己根据proto文件
生成stub存根
SDK
引用stub存根
,这些stub存根
已经提前生成好并且发布到依赖库中针对这个问题,有多种解决方案。
方案一:
模式:"
SDK
引用stub存根
模式"如图所示,
*.proto
文件移动至/grpc
目录下,作为grpc协议
的公用内容stub
(存根)模块,- grpc-java : 提供给
opensergo-java-sdk
的 基于grpc 协议
的 stub模块- grpc-golang : 提供给
opensergo-go-sdk
的 基于grpc 协议
的 stub模块- grpc-[其他语言]
.github/workflows
目录下编写脚本,在提交或者某个时刻触发部署,各语言根据*.proto
文件生成对应的stub
代码,然后各自打成stub
依赖包,发布到中央仓库中- java 打成 jar 包,发布到 maven 仓库
- golang 打成 mod 组件,发布到 github (建议单独创建
opensergo-go
组织作为go仓库
,发布go
相关组件)sdk或模块
依赖对应的stub
进行开发对应的 sdk
进行开发如果新增其他通讯协议,可以按照这个结构继续扩展,以
xds
为例或者单独抽出独立的协议模块,以
xds
为例The text was updated successfully, but these errors were encountered: