Externalizer4J is a developer tool

Externalizer4J optimizes object serialization automatically. It works on the bytecode directly. You simply plug Externalizer4J in after the compilation step. After analysis of the classes it generates bytecode for new serialization methods. Hence the description Serialization Compiler.

What it does

By default Externalizer4J converts Serializable classes into Externalizable implementations with their own optimized writeExternal() and readExternal() methods. For Hazelcast it generates an implementation  for the writeData() and readData() methods of the DataSerializable or IdentifiedDataSerializable interfaces. All without any coding!

Externalizer4J currently supports the generation of serialization methods for the JDK and the Hazelcast in-memory data grid.

Performance improvements

Externalizer4J will help you improve application performance by:

  1. speeding up serialization by generating serialization methods optimized for you classes
  2. minimizing the serialized data size by using the most efficient serialization calls

Optimized serialization benefits many Java technologies :

  • RMI, JMS
  • JEE session beans, servlet sand clustering
  • Distributed computing and caches (ex. JGroups, Hazelcast)

Features and benefits

No tedious and error-prone coding of serialization calls. And no maintenance either. Fast and automatic optimization designed to fit easily in your development workflow. No process change and with all benefits of optimized serialization.

Automatic analysis and optimization



Easy of integration

Simple integration in any Ant or Maven build or straight from the IDE, Externalizer4J fits any build:

– Apache Ant task
Apache Maven plugin
– IntelliJ​ plugin


Externalizer4J can inspect hand-written serialization logic for errors: wrong methods order, missing fields, incorrect deserialization order, etc…Support for: Serializable, Externalizable, DataSerializable, IdentifiedDataSerializable

Static code analysis of existing serialization code


No coding and no dependencies

No code changes required! Externalizer4J can analyze and optimize your classes right away. No annotations or special API’s. No compile time dependency.

Optimized applications and libraries do not become dependent on Externalizer4J!  No runtime dependency.


Externalizer4J gets out of you way by being fast. The optimization is designed to easily fit in your current builds; not slowing them down.

Fast analysis and optimization