Aka*_*ash 6 serialization algebraic-data-types discriminated-union
这个问题早在2012年就被问到了,但我正在寻找新的更新。
是否有任何支持带标签的联合的序列化格式(又名和类型)?我的要求是它具有Java和.Net客户端库,并且应该“合理成熟”。性能不是主要问题。
Avro提供了部分支持,但不允许嵌套的联合(http://avro.apache.org/docs/1.7.6/spec.html#Unions)。Cap'n Proto似乎有更好的支持,但我不确定它是否已准备好投入生产。Transit没有直接支持,但是提供了一种扩展机制,该机制可能能够支持带标签的联合。
还有其他建议或对以上选择的评论吗?
Protocol Buffers 2.6.0 版以oneof
声明的形式添加了对标记联合的支持,但看起来 protobuf-net 最近没有更新,所以我猜它还不支持这个。
Cap'n Proto在很多地方(例如 CloudFlare)用于生产,但 C# 和 Java 实现确实是相对较新的。
(披露:我是 Cap'n Proto 的作者,也是谷歌大部分开源 Protobuf 代码的作者。)