【发布时间】:2016-11-04 04:18:04
【问题描述】:
我正在研究使用协议缓冲区与我们拥有的一些自定义设备进行通信。问题是这些设备运行嵌入式 python 解释器,我们无法在它们上安装额外的库。有没有办法在不需要 protobuf 库的情况下将 .proto 文件编译成 python?
【问题讨论】:
-
你可以直接导入文件吧?所以,下载这个github.com/google/protobuf/tree/master/python 然后就像 import mox 一样
-
看起来里面有超过 150 万的代码。我们的整个应用程序小于 500K。我想知道解析器需要多少才能工作。
-
您是否需要 Protobuf 与其他已经使用它的部分进行通信?您可以使用其他一些解决方案吗,例如:ASN.1、ZeroMQ?
-
我需要一个紧凑的二进制协议来通过网络与嵌入式设备进行通信。该设备运行 python,但资源非常有限,并且不允许安装外部库。我会研究 zeromq 和 ASN.1,谢谢。
-
这只是吐槽,疯狂的谈话,但你不能像 protobuff 的 python 实现的反序列化位一样撕开,重新实现一个 protobuff 格式规范的最低限度硬编码,该规范在加载时初始化。然后,您可以使用单个静态 protobuff 定义/网络配置与您的设备进行至少一种通信。但是,如果您要从事所有这些工作,为什么不只是泡菜呢?这会容易得多