提升序列化库升级

Kon*_*tin 10 c++ boost boost-serialization

我怎么知道我可以安全地升级生产系统上的Boost Serialization Library而不破坏与现有数据的兼容性?是否有任何测试我应该执行以确保新版本的库成功读取以前版本的库以二进制格式存储的所有数据?Boost Serialization库本身是否保证了版本之间的某种兼容性?

bac*_*car 9

Boost.serialization是向后兼容的,但是保证是向前兼容.

这意味着:

  • 您可以使用较旧版本的boost.serialization创建一个可以使用较新版本读取的存档.
  • 无法保证使用较新版本的boost.serialization创建的存档可以被较旧版本读取.

例如,如果您在两个方向上在客户端和服务器之间发送消息,则可能必须以锁步方式升级两者的boost版本.

每种版本的boost 都不会改变"有线格式" .因此,在2个特定版本的boost之间,您可能没有问题 - 我找不到哪个版本的boost在哪个版本的存档格式中使用的具体文档.

另请注意,虽然向后兼容性是"保证",但这只是表达意图 - 尽管我猜你可以收回你的钱;-).Boost版本1.42和1.43有一个错误,意味着以后的版本无法读取它们 - 请参阅1.45发行说明.


Mar*_* Ba 1

最初的版本是 Boost 1.32。看来您可以在此处查看此后的发布历史记录: http://www.boost.org/doc/libs/1_43_0/libs/serialization/doc/release.html

除此之外,我建议在 boost 邮件列表上询问: http://www.boost.org/community/groups.html#users