规范驱动的包格式解析?

2024-04-19 08:44:52 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个未知数:我们有一个正在设计和不断变化的有线数据包格式。有没有一种灵活的方法来指定和解析传入流,而不是硬编码它?最好是语言不可知论者。。。但未必如此。如果有充分的理由不这样做,也请开导我。在

谢谢

奥利弗


Tags: 方法语言编码格式数据包理由有线
3条回答

Erlang和Haskell都有很好的二进制模式匹配。但出于您的目的(假设您在JVM上),为什么不write the connector in Scala?在

有一个很棒的Python库Construct。这是迄今为止最简单的快速入门方法。在

如果与语言无关更重要的是,您可以将wire协议限制在ASN.1 BER,因为通常可以在任何语言中找到这些协议的编码器/解码器库。例如,Java中有CoDec,Python中有{a4}。警告:虽然ASN功能强大,但它充满了标准委员会的设计,而且很难开始。This site will help.

还有一些更新的、更轻量级的类似ASN.1的方法,比如Apache Thrift和{a7}。在

Google的Protocol Buffers允许您指定要发送的内容,然后它为您生成解析和序列化代码。在

Thrift类似,但也提供了IPC框架。它将解析和套接字功能集成到一个包中。在

我没怎么用过这些库,但它们都有很好的文档,不受语言限制,并且是在许可的许可下发布的,我确信至少有一个库适合您的应用程序。在

相关问题 更多 >