#格式 #字段 #消息 #序列化 #定义 #可选 #生成器

xtypes

类似于 Rust 的 IDL,不指定传输格式

1 个不稳定版本

0.1.0 2019 年 4 月 3 日

#79#可选

MIT 许可证

20KB
513

XTypes

XTypes 是一种跨语言类型定义系统。它在许多方面与 Protocol Buffers、FlatBuffers 和 Cap'n Proto 类似,但它将序列化格式和代码生成留给了你。

Comparison

虽然 Protocol Buffers、FlatBuffers 和 Cap'n Proto 都提供底层序列化格式和代码生成工具以将该格式进行序列化和反序列化,但它们为此便利性做出了假设和权衡。其中一些假设包括

  • 你的消息需要不断进化。
  • 你描述的消息不是现有协议的一部分(即你可以使用新的序列化格式)
  • 所有字段都应该是可选的,因此你需要编写代码来执行额外的空检查(Protobuf v3 & Cap'n Proto)
  • 缺失的字段可以默认为 0 或空字符串(FlatBuffers)

那么你为什么要使用 XTypes 呢?

  • 为了描述现有协议中的消息
  • 你希望编写自己的代码生成器
  • 你需要更多灵活性来描述你的消息。
  • 你需要额外的类型安全;并且
  • 可进化性并不那么重要(例如,你正在构建两端都可以同时部署的软件)。 注意:你仍然可以使用 XTypes 创建可进化的协议,但这取决于你自己

依赖项

~3MB
~60K SLoC