Skip to content
FST: fast java serialization drop in-replacement
Java JavaScript Other
Branch: master
Clone or download


Type Name Latest commit message Commit time
Failed to load latest commit information.
.gradle/1.6/taskArtifacts v1.38 Mar 4, 2014
img . Mar 1, 2014
lib json codec May 26, 2015
src Merge remote-tracking branch 'origin/master' May 17, 2020
.gitignore move to netty2go, initial js generation May 27, 2014
.travis.yml Added Travis CI configuration Nov 18, 2015 license Dec 13, 2014 some fixes & pr's May 17, 2020
fst.png Add files via upload May 14, 2016
pom.xml some fixes & pr's May 17, 2020 3.0.0 release May 17, 2020
test.json . May 30, 2015


  • up to 10 times faster 100% JDK Serialization compatible drop-in replacement (Ok, might be 99% ..). As an example: Lambda Serialization which came with 1.8 worked instantly.
  • Android compatible since version >= 2.17 (use FSTConfiguration.createAndroidDefaultConfiguration() both on server and client side. The configuration object has to be passed into FSTObjectIn/Output constructors)
  • OffHeap Maps, Persistent OffHeap maps
  • FSTStructs is very similar to IBM's packed objects. Difference is: You can run it with Oracle JDK today.
  • optionally en/decode any Serializable object graph to JSON (incl. shared references) (since 2.29) for interop
  • Apache 2.0 license since 2.17


Fast JDK-compatible Serialization

Json Serialization

OffHeap + Persistent Maps

MinBin cross platform binary format

Kson: a JSon extension


note: might lag 1 day behind after releasing.

3.0.0 version (requires java 14, "--add-modules jdk.incubator.foreign" option on compiler and runtime)


2.0 version (java 8)


jdk1.6 compatible build of fst 2.x


1.x version (different package name, 1.6 compatible ..). Fixes are not backported anymore, unsupported.


Who uses FST ?

I am not actively tracking use, reports more than 14000 downloads from 6000 distinct IP accesses triggered by maven builds world wide per month.

Notable also:

  • used in production in Eurex Exchange's trading back end's middleware
  •'s distributed system / NLP engine uses FST
  • Popular Apache Wicket supplementals use FST to speed up Wicket

alt tag

how to build

  • master contains dev branch/trunk.
  • 1.x contains old version
  • The maven build should work out of the box and reproduces the artifact hosted on
  • To use the gradle build, you need to configure the proxy server in (or just set empty if you do not sit behind a proxy).

Note that instrumentation done for fst-structs works only if debug info is turned on during compile. Reason is that generating methods at runtime with javassist fails (probably a javassist bug ..). This does not affect the serialization implementation.

JDK 1.6 Build 1.x build since v1.62 are still jdk 6 compatible

You can’t perform that action at this time.