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 引入

  [xml]
1
2
3
4
5
<dependency> <groupId>de.ruedigermoeller</groupId> <artifactId>fst</artifactId> <version>2.56</version> </dependency>

简单使用

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

  [java]
1
2
3
4
5
6
7
8
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