我对scala数据结构序列化选项的意见感兴趣。我想找到一些开发得足以允许(如果可能的话)Scala集合类型的高效二进制序列化(即不使用通用Java反射 - 我不想序列化集合类的所有部分,包括内部记录数据)但也允许我为我自己的目的/类扩展功能:我很高兴必须为我们自己的每个类编写序列化代码,但宁愿不必为Scala的集合编写代码标准库。在C ++中,我从Boost serialization library获得了很多这方面的功能。
我过去曾使用SBinary并且它会执行我想要的一些操作,但是没有获得明显的主动维护,并且似乎(afaik)跟踪已经序列化的对象(例如,对于DAG而言)或循环数据结构)。
是否有其他针对Scala的解决方案,或者如果没有,您对高效二进制序列化的建议是什么?
答案 0 :(得分:2)
可能,如果您只需要序列化数据而不是整个java对象,那么最佳解决方案是:
我在几个项目中使用msgpack
和bson
,但效果非常好。我真的建议msgpack
- 具有最有效的二进制表示(这三个)并且完全是JSON兼容。
答案 1 :(得分:1)
Scala的协议缓冲编译器:https://github.com/SandroGrzicic/ScalaBuff - 也许这有用吗?
本页底部还有其他一些链接:http://doc.akka.io/docs/akka/snapshot/scala/serialization.html