【发布时间】:2020-02-21 06:18:14
【问题描述】:
我要实现一个通信协议。协议中使用的数据结构被定义为每条消息中每个字段的字节数
bytes 1-2 -> stx bytes
bytes 3 -> mesg type
bytes 4-5 -> size of pay load
bytes 6-... -> pay load bytes (unsigned bytes)
bytes ... - ...+1 -> checksum from byte 3 - ...
bytes ...+2 -> end byte
上面的例子是可变的有效负载大小,但一些消息也是固定大小的。
为此,我检查了一个序列化库,即“协议缓冲区”,但我得出的结论是 protobuf 不会抱怨,因为使用的变体类型会更改序列化的数据。 存在类似的库,但我不确定它们是否可以用于此目的(平面缓冲区,cap'n proto)。
那么,是否有一个框架来定义接口结构并为定义的接口生成适当的代码(数据结构 + 解析器 + 序列化器,如果可能支持多种语言)?
或者您为此目的建议的最佳方法是什么?
【问题讨论】:
标签: serialization protocols code-generation