-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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: