A high-performance, JDK-compatible Java serialization library offering significant speed improvements and additional features like JSON serialization and off-heap maps.
FST (fast-serialization) is a Java library that provides a high-performance alternative to the standard JDK serialization. It serializes and deserializes Java objects much faster while maintaining compatibility with existing Serializable classes, solving performance bottlenecks in data-intensive applications.
Java developers working on performance-sensitive applications, such as trading systems, distributed systems, or middleware, who need efficient object serialization without rewriting existing code.
Developers choose FST for its significant speed improvements (up to 10x faster), its near-perfect drop-in compatibility with JDK serialization, and additional features like JSON support and off-heap maps that extend its utility beyond basic serialization.
FST: fast java serialization drop in-replacement
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers up to 10 times faster serialization than standard JDK serialization, as benchmarked and highlighted in the project description, making it ideal for performance-critical applications.
Acts as a near drop-in replacement with 99% compatibility, supporting advanced features like Lambda Serialization from Java 8 without code changes, per the README.
Provides dedicated configuration via FSTConfiguration.createAndroidDefaultConfiguration() for cross-platform support, ensuring efficient serialization in mobile environments.
Includes optional JSON serialization with shared references, off-heap maps, and MinBin cross-platform format, extending utility beyond basic serialization.
Used in high-stakes production systems like Eurex Exchange's trading backend, demonstrating reliability and performance in real-world scenarios.
The README admits it's 'might be 99%' compatible, risking subtle bugs in applications that rely on exact JDK serialization semantics for critical operations.
Multiple version lines (1.x, 2.x, 3.x) with different JDK requirements and compiler options, complicating dependency management and upgrades.
Requires specific configuration on both server and client sides for Android, adding boilerplate and potential for misconfiguration compared to standard serialization.
Documentation is spread across a separate wiki, which may be less integrated, up-to-date, or accessible than inline docs, increasing learning curve.