Kryo
Java binary serialization and cloning, fast, efficient, automatic
Kryo is a fast and efficient binary object graph serialization framework for Java. The goals of the project are high speed, low size, and an easy-to-use API. The project is useful any time objects need to be persisted, whether to a file, database or over the network. Kryo can also perform automatic deep and shallow copying/cloning. This is direct copying from object to object, not object to bytes to object. Kryo has three sets of methods for reading and writing objects. If the concrete class of the object is not known and the object could be null. Besides methods to read and write objects, the Kryo class provides a way to register serializers, reads and writes class identifiers efficiently, handles null objects for serializers that can't accept nulls, and handles reading and writing object references (if enabled). This allows serializers to focus on their serialization tasks.