是否存在允许dynamic message types
和TLV kind of encoding
数据的数据序列化协议?在查看协议缓冲区和Apache节约之后,他们似乎没有这样做。
我有一些要求,例如:如果我想发送一些数据结构:
它必须有一些方法来编码数据(比如在类型长度值编码中),以便接收者知道它的读数和数据的排列方式(类似于数据树).Protocl缓冲区说你必须跟踪接收方的数据。
它还应该提供一些方法,以便我可以动态添加数据。我认为在PB和thrift中他们需要提前知道所有数据,我是否正确?
只有替代方法是自己编码TLV格式的数据结构,然后使用boost :: serialization之类的东西通过网络对其进行serilize?
答案 0 :(得分:1)
如果您将邮件与DescirptorSet
捆绑在一起,则Protobufs可以自我描述。请参阅文档中的Self-describing Messages。如果你真的想要,你甚至可以在运行时生成新的描述符(新的原型类型)。
那就是说,听起来你会对JSON或MsgPack感到满意,这些都是无模式编码。
答案 1 :(得分:0)
您是否尝试过像JSON或Binary JSON这样更通用的东西?它没有指定长度perse,但长度可以很容易地发现。它也有很多C ++库支持。