我有用proto2格式编写的C代码,由protoc-c编译器编译。我想知道的是,该代码是否与' protoc'生成的序列化/反序列化代码二进制兼容。编译器(也恰好理解protobuf的第3版)?出于某种原因,我无法得到这个问题的确切答案。我想知道的原因是因为版本3和版本2之间已经存在向后兼容性问题,所以我对protoc-c和protoc工具包以及它们如何处理版本有点不确定。
谢谢!
答案 0 :(得分:3)
是的,这两个实现应该是兼容的 - 您可以使用一个实现来序列化消息,并成功地用另一个实现解析它们。我没有亲自尝试过protobuf-c,但根据其描述,它只是同一协议缓冲线格式的另一种实现。
您提到了syntax = "proto2"
和syntax = "proto3"
之间的差异。确实,这些是不同的,如果你想从一个迁移到另一个,你必须要小心,但我认为这个问题与你关于protobuf-c和Google的protobuf实现之间的兼容性的问题是正交的。