我正在处理来自 spinn3r 的数据,它由多个不同的 protobuf 消息组成,这些消息序列化为一个字节流:
http://code.google.com/p/spinn3r-client/wiki/Protostream
“protostream 是协议缓冲区消息流,根据 Google 协议缓冲区规范在线上编码为长度前缀变量。流包含三个部分:标头、有效负载和尾部标记。”
这似乎是 protobuf 的一个非常标准的用例。事实上,protobuf 核心发行版为 C++ 和 Java 提供了 CodedInputStream。但是,protobuf 似乎没有为 python 提供这样的工具——“内部”工具不是为这种外部使用设置的:
https://groups.google.com/forum/?fromgroups#!topic/protobuf/xgmUqXVsK-o
所以......在我去拼凑一个python varint解析器和用于解析不同消息类型流的工具之前:有人知道这方面的任何工具吗?
为什么 protobuf 中缺少它?(或者我只是没有找到它?)
对于 protobuf 来说,这似乎是一个很大的差距,尤其是与 thrift 的“传输”和“协议”等效工具相比。我看对了吗?