对于由Protobuf 2.5.X生成的数据,Protobuf 3.0.X版可以安全地读取它吗?
答案 0 :(得分:1)
Protobuf有线格式设计为向后和向前兼容。所以generally it is safe,除非你用一个特定的v2特征射击自己:custom default values。默认值为constant in v3。具体来说,枚举默认值是第一个条目it must be zero。因此,您的v2自定义值将丢失 - 默认值字段根本不会显示在线路上,因此接收方不知道它是否未设置或设置为默认值。请注意,在v3中,所有字段均为optional
(不再是required
),因此任何字段都可以合法遗漏。
如果你还没有在v2中使用自定义默认值,或者在第一个枚举条目中使用非零值,那么v3应该读得很好。