协议缓冲区2和3在同一C Linux应用程序中



我有一个已经使用proto2的C Linux应用程序。

现在,它需要能够解析特定的proto3架构

不幸的是,升级proto2架构不是一个选择。

都不降低proto3

我知道设计的气味,但这就是我必须使用的。

同时支持两者的最少痛苦方式是什么?

我了解C PB库允许动态加载.proto而不是使用protoc。如果我要走这条路,我是否还必须完全更改Proto2位?Proto2和Proto3动态装载机可以共存吗?

想到的另一个解决方案是在共享对象中进行proto3解析并动态链接。

其他想法?

@alanbirtles让我意识到proto2和proto3之间没有如此不相容的问题。我只需要确保所有生成的.pb.*文件都是使用protoc的相同版本生成的。