All Projects → RuedigerMoeller → Fast Serialization

RuedigerMoeller / Fast Serialization

Licence: apache-2.0
FST: fast java serialization drop in-replacement

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Fast Serialization

Eminim
JSON serialization framework for Nim, works from a Stream directly to any type and back. Depends only on stdlib.
Stars: ✭ 32 (-97.63%)
Mutual labels:  json, serialization
Dictfier
Python library to convert/serialize class instances(Objects) both flat and nested into a dictionary data structure. It's very useful in converting Python Objects into JSON format
Stars: ✭ 67 (-95.03%)
Mutual labels:  json, serialization
Tech1 Benchmarks
Java JMH Benchmarks repository. No Longer Supported.
Stars: ✭ 50 (-96.29%)
Mutual labels:  json, serialization
Fastjson
A fast JSON parser/generator for Java.
Stars: ✭ 23,997 (+1680.19%)
Mutual labels:  json, serialization
Dahomey.json
The main purpose of this library is to bring missing features to the official .Net namespace System.Text.Json
Stars: ✭ 84 (-93.77%)
Mutual labels:  json, serialization
Jackson Module Kotlin
Module that adds support for serialization/deserialization of Kotlin (http://kotlinlang.org) classes and data classes.
Stars: ✭ 830 (-38.43%)
Mutual labels:  json, serialization
Simplify Core
Simplify 为简化重复的JAVA代码而生,基于JDK8,无其它jar包依赖,提供序列化,json parse/generator,日期处理,asm && jdkproxy 实现动态代理功能 等常见操作。
Stars: ✭ 65 (-95.18%)
Mutual labels:  json, serialization
Flatcc
FlatBuffers Compiler and Library in C for C
Stars: ✭ 434 (-67.8%)
Mutual labels:  json, serialization
Jsonifier
Fast and simple JSON encoding toolkit
Stars: ✭ 79 (-94.14%)
Mutual labels:  json, serialization
Dartson
Dartson is a Dart library that can be used to convert Dart objects into a JSON string.
Stars: ✭ 78 (-94.21%)
Mutual labels:  json, serialization
Groot
From JSON to Core Data and back.
Stars: ✭ 533 (-60.46%)
Mutual labels:  json, serialization
Go
A high-performance 100% compatible drop-in replacement of "encoding/json"
Stars: ✭ 10,248 (+660.24%)
Mutual labels:  json, serialization
Iguana
universal serialization engine
Stars: ✭ 481 (-64.32%)
Mutual labels:  json, serialization
Play Json Extra
playframework2 json extra module. provide convenience functions for define Format, Reads, Writes
Stars: ✭ 20 (-98.52%)
Mutual labels:  json, serialization
Airframe
Essential Building Blocks for Scala
Stars: ✭ 442 (-67.21%)
Mutual labels:  json, serialization
Fhir.js
Node.JS library for serializing/deserializing FHIR resources between JS/JSON and XML using various node.js XML libraries
Stars: ✭ 61 (-95.47%)
Mutual labels:  json, serialization
Handyjson
A handy swift json-object serialization/deserialization library
Stars: ✭ 3,913 (+190.28%)
Mutual labels:  json, serialization
Jsoniter Scala
Scala macros for compile-time generation of safe and ultra-fast JSON codecs
Stars: ✭ 410 (-69.58%)
Mutual labels:  json, serialization
Json Mobx
Simple undo/redo and persistence for MobX
Stars: ✭ 78 (-94.21%)
Mutual labels:  json, serialization
Coq Serapi
Coq Protocol Playground with Se(xp)rialization of Internal Structures.
Stars: ✭ 87 (-93.55%)
Mutual labels:  json, serialization

fast-serialization

  • 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

Docs:

Fast JDK-compatible Serialization

Json Serialization

OffHeap + Persistent Maps

MinBin cross platform binary format

Kson: a JSon extension

mvn

note: maven.org might lag 1 day behind after releasing.

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

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

2.0 version (java 8)

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

jdk1.6 compatible build of fst 2.x

<dependency>
    <groupId>de.ruedigermoeller</groupId>
    <artifactId>fst</artifactId>
    <version>2.48-jdk-6</version>
</dependency>

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

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

Who uses FST ?

I am not actively tracking use, maven.org 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
  • JUptr.io'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 maven.org
  • To use the gradle build, you need to configure the proxy server in settings.properties (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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].