擅长:python、mysql、java
<p>您的系统是异构的,这意味着您需要某种与平台/语言无关的序列化。在</p>
<p>出于您的目的,最方便使用的可能是<code>Google Protocol Buffers</code>。这非常支持C++和Python。这样,您将在模式文件(文件扩展名^ {CD2}})中定义消息/数据结构,并使用^ {CD3}}将其编译为C++源代码和Python源代码。这些提供了可以序列化/反序列化到同一wireformat的类。序列化/反序列化可以很好地与ZMQ消息缓冲区集成。在</p>
<p>还有其他的</p>
<ul>
<li><code>Apache Avro</code>是可能的。在</li>
<li>我会避免使用<code>XSD</code>模式;原则上,它们很好,但是要找到真正完成正确完整工作的代码生成器是困难的/昂贵的。例如,^ {< CD6> }(来自微软)可以编译XSD模式到C++类(我想),但是忽略了架构中的约束字段(E.D^ { CD7}})。在</li>
<li>ASN1确实很好,但是我还没有找到一个适合Python的实现。ASN.1forpython(pyasn)有一个代码优先的实现,但这忽略了ASN.1模式的全部意义。。。在</li>
</ul>