Protocol buffers protobuf数据类型可以升级吗?

Protocol buffers protobuf数据类型可以升级吗?,protocol-buffers,Protocol Buffers,我是Protobuf的新手,所以不知道这是否可行。如果在一个proto文件中我有一个fixed32数据类型,我是否可以将其升级到fixed64,以便也可以读取所有现有的fixed32值(即向后兼容性) 如果没有,执行此类升级的最佳方式是什么?tl;医生:是的,但不包括您的确切类型。 您可以在各种编码类型之间自由移动,因为它们在导线上使用完全相同的编码 从: int32、uint32、int64、uint64和bool都是兼容的–这意味着您可以将字段从一种类型更改为另一种类型,而无需中断前后兼容。

我是Protobuf的新手,所以不知道这是否可行。如果在一个proto文件中我有一个
fixed32
数据类型,我是否可以将其升级到
fixed64
,以便也可以读取所有现有的
fixed32
值(即向后兼容性)


如果没有,执行此类升级的最佳方式是什么?

tl;医生:是的,但不包括您的确切类型。

您可以在各种编码类型之间自由移动,因为它们在导线上使用完全相同的编码

从:

int32
uint32
int64
uint64
bool
都是兼容的–这意味着您可以将字段从一种类型更改为另一种类型,而无需中断前后兼容。如果从不适合于相应类型的线中解析一个数,则将获得与在C++中将该数转换为该类型的相同效果(例如,如果64位数字被读取为<代码> IT32 32 /代码>,则它将被截断为32位)。 遗憾的是,这不适用于
fixed32
(仅与
sfixed32
兼容)和
fixed64
(仅与
sfixed64
兼容)

如果已经有大量数据使用
fixed32
字段,则必须创建一个新的
int64
字段,并从现有字段逐渐过渡到新字段(新代码读取两个字段,但只填充新字段)