现有协议的C ++序列化库

时间:2015-02-13 15:46:28

标签: c++ serialization legacy

我正在为现有的网络协议编写一个C ++库(一个文档指定了确切的数据包布局)。由于存在大量数据包定义,而不是手动编写所有序列化/反序列化方法,是否有任何能够专门指定数据包布局的序列化库?

我一直在研究像Google Protobuf和Apache Thrift这样的东西,但他们似乎专注于开发一个服务器和客户端串联,其中数据包布局无关紧要,因为它在单个版本中保持一致软件。我需要序列化到现有规范,因此需要明确地确定字段顺序,长度,字节顺序等。有什么能帮助减少这件苦差事吗?

1 个答案:

答案 0 :(得分:1)

有一个名为PADS的库/工具应该是理想的。请参阅此SO回答here,项目主页here,一些GitHub-ish内容here。似乎有一些与Haskell相关的东西here。我刚尝试并成功从主页下载PADS / C(请注意,下载服务器的用户名和密码在其许可协议的底部给出)。

这有点像编写Google协议缓冲区架构,除非您在任意数据流中指定位/字节,这就是您所拥有的。

我曾尝试从https://github.com/yitzhakm/PADS-ML下载PADS / ML,但遇到了很多麻烦并最终失败了。

由于您对C感兴趣(与您将要获得的C ++差不多),您可以尝试使用PADS / C库。