🍺 serialization framework
Kryo
- repo: https://github.com/EsotericSoftware/kryo
- EsotericSoftware/kryo: Java binary serialization and cloning: fast, efficient, automatic.
- Kryo is a fast and efficient binary object graph serialization framework for Java.
- Additional serializers(for some jdk types and some external libs like e.g. joda time) are available in a separate project on github, kryo-serializers.
JBoss Marshalling
- repo: https://github.com/jboss-remoting/jboss-marshalling
- an alternative serialization API that
- fixes many of the problems found in the JDK serialization API while remaining fully compatible with
java.io.Serializable and its relatives,
- and adds several new tunable parameters and additional features, all of which are pluggable via factory configuration (externalizers, class/instance lookup tables, class resolution, and object replacement, to name a few).
- this framework was inspired by the need for certain features unavailable with the standard
Object*Stream classes
- Pluggable class resolvers, making it easy to customize classloader policy, by implementing a small interface (rather than having to subclass the
Object*Stream classes)
- Pluggable object replacement (also without subclassing)
- Pluggable predefined class tables, which can dramatically decrease stream size and serialization time for stream types which frequently use a common set of classes
- Pluggable predefined instance tables, which make it easy to handle remote references
- Pluggable externalizers which may be used to serialize classes which are not Serializable, or for which an alternate strategy is needed
- Customizable stream headers
- Each marshaller instance is highly configurable and tunable to maximize performance based on expected usage patterns
- A generalized API which can support many different protocol implementations, including protocols which do not necessarily provide all the above features
- Inexpensive instance creation, beneficial to applications where many short-lived streams are used
- Support for separate class and instance caches, if the protocol permits; useful for sending multiple messages or requests with a single stream, with separate object graphs but retaining the class cache
- home page: http://jbossmarshalling.jboss.org/
- maintenance is not active...
- although personally I like the product of jboss and it's high quality 😩
🍺 serialization specification
Protocol Buffers
protostuff
improvement/enhancement of java; independent implementation of java.
🍺 serialization framework
Kryo
JBoss Marshalling
java.io.Serializableand its relatives,Object*StreamclassesObject*Streamclasses)🍺 serialization specification
Protocol Buffers
protostuff
improvement/enhancement of java; independent implementation of java.