技术解析

能不能脱离 gRPC 单独在 Python 项目使用 protocol buffer?
0
2021-06-09 15:25:45
idczone

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++ 库?于是来问问各位。


所以你的需求到底是什么呢,或者说你想用 pb 文件干什么?

楼主, 你中文表意不清
但是, 我认为, python 单独使用 pb, 在大公司比比皆是, 只需要官方 protoc 生成 py 文件即可, 从入门到精通, 本科学历最多 2 天

不好意思可能我没表达清,刚开会去了。
我想要的是单独从 pb 文件生成 Python model 且能从 Python model 生成 pb 文件的库。


@yunyuyuan

序列化和反序列化功能肯定还是要包含在生成的 Python model 里的。

protoc xx.proto --python_out=./ 不就行了?

你想要的是这种东西吧
https://github.com/danielgtaylor/python-betterproto

对对对,感谢。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服