fast-serialization

简介

FST 是一个快速的 Java 序列化替代库。

特性

  • 速度提升高达 10 倍,100% 兼容 JDK 序列化的替代品(好吧,可能是 99%)。例如:1.8 版引入的 Lambda 序列化立即生效。
  • 自 2.17 版起兼容 Android(在服务器和客户端上使用 FSTConfiguration.createAndroidDefaultConfiguration()。配置对象必须传递给 FSTObjectIn/Output 构造函数)。
  • 支持 OffHeap Maps,持久 OffHeap maps。
  • FSTStructs 非常类似于 IBM 的打包对象。 不同之处在于:你可以在今天使用 Oracle JDK 运行它。
  • 可选地将任何 Serializable 对象图编/解码为 JSON(包括共享引用)(自 2.29 起)以实现互操作性。
  • 自 2.17 起使用 Apache 2.0 许可。

使用案例

Maven 引入

<dependency>
    <groupId>de.ruedigermoeller</groupId>
    <artifactId>fst</artifactId>
    <version>2.56</version>
</dependency>

简单使用

由于我经常看到人们使用 ByteArrayOutputStreams 等(非常低效),所以这里是使用快速序列化的最简单方法(线程安全)。

static FSTConfiguration conf = FSTConfiguration.createDefaultConfiguration();
// 也许在配置中注册最常用的类
[...]
// 写入
byte barray[] = conf.asByteArray(mySerializableObject);
[...]
// 读取
MyObject object = (MyObject)conf.asObject(barray);

json 系列

字符串

DSL-JSON 最快的 java 实现

Ali-FastJson

Google-Gson

Jackson

二进制

Google protocol buffer

Apache Thrift

Hession

Kryo

Fst

Messagepack

Jboss Marshaling

其他

JsonPath

JsonIter

参考资料

高效的Java序列化(Kryo和FST)

高性能序列化框架FST