是否有用于描述任意二进制有效负载的现有库?

时间:2018-04-05 03:18:27

标签: parsing binary-data

我正在尝试为个人项目解析一些协议。我意识到我可以使用Python的struct库等创建自定义代码,但我想知道是否有一个现有的库可以描述如何以更具声明性的方式解析二进制有效负载。如果我能使愿望成真,那么库将会采取如下所示的输入并为我生成解析器:

{
    messageType: exampleMessage,
    messageAttributes: {
        endianness: little, 
        pack: ALIGNED},
    dataStructure: [
        {name: messageId, type: int16},
        {name: payloadSize: type: int32},
        {name: payload: type: utf_8, size: {ref: payloadSize}},
        {name: checksum: type: CRC32, context: example_message}]
}

1 个答案:

答案 0 :(得分:0)

您是否尝试过MessagePack,就像JSON,但是又快又小?这是一种有效的二进制序列化格式。它使您可以在JSON之类的多种语言之间交换数据。但是它更快,更小。