2024-04-19 08:44:52 发布
网友
这可能是一个未知数:我们有一个正在设计和不断变化的有线数据包格式。有没有一种灵活的方法来指定和解析传入流,而不是硬编码它?最好是语言不可知论者。。。但未必如此。如果有充分的理由不这样做,也请开导我。在
谢谢
奥利弗
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框架。它将解析和套接字功能集成到一个包中。在
我没怎么用过这些库,但它们都有很好的文档,不受语言限制,并且是在许可的许可下发布的,我确信至少有一个库适合您的应用程序。在
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框架。它将解析和套接字功能集成到一个包中。在
我没怎么用过这些库,但它们都有很好的文档,不受语言限制,并且是在许可的许可下发布的,我确信至少有一个库适合您的应用程序。在
相关问题 更多 >
编程相关推荐