能不能脱离 gRPC 单独在 Python 项目使用 protocol buffer?

2021-03-15 15:39:13 +08:00
 abersheeran

gRPC 实在是太蛋疼了,放在 Java 这种朴素的静态语言里这个用法一点问题都没有,但是放在 Python 这种自由度很高的动态语言里简直……

看过我之前一个帖子的应该知道,我之前写了一个 https://github.com/abersheeran/rpc.py 可以支持直接把同步函数、异步函数、同步生成器函数、异步生成器函数直接生成 API 。

但是生态很重要(主要是自家要用其它语言,我实在没精力写各个语言的服务端和客户端),还是得兼容 gRPC 的 proto 写法。我的想法是,Python 函数定义好(需要包含全量且不带 Any 的 type annotations 的)就可以自动生成 proto 文件以供下载,还可以使用 protocol buffer 协议去序列化。当然 http headers 也得兼容。同时也支持反向从 proto 文件生成 Python 代码。

一番搜索之下感觉好像没有单独使用 pb 的 Python 方法,似乎只能自己编译 C++ 库?于是来问问各位。

1304 次点击
所在节点    程序员
8 条回复
yunyuyuan
2021-03-15 15:47:34 +08:00
所以你的需求到底是什么呢,或者说你想用 pb 文件干什么?
FucUrFrd
2021-03-15 15:52:58 +08:00
楼主, 你中文表意不清

但是, 我认为, python 单独使用 pb, 在大公司比比皆是, 只需要官方 protoc 生成 py 文件即可, 从入门到精通, 本科学历最多 2 天
abersheeran
2021-03-15 16:23:53 +08:00
不好意思可能我没表达清,刚开会去了。

我想要的是单独从 pb 文件生成 Python model 且能从 Python model 生成 pb 文件的库。
abersheeran
2021-03-15 16:24:06 +08:00
abersheeran
2021-03-15 16:24:47 +08:00
序列化和反序列化功能肯定还是要包含在生成的 Python model 里的。
MoYi123
2021-03-15 16:30:54 +08:00
protoc xx.proto --python_out=./ 不就行了?
DM1
2021-03-15 16:48:05 +08:00
abersheeran
2021-03-15 18:52:44 +08:00
@DM1 对对对,感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/761803

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX