Features
Core Capabilities
🚀 High-Performance Serialization
Apache Fory™ delivers exceptional performance through advanced optimization techniques:
- JIT Compilation: Runtime code generation for Java eliminates virtual method calls and inlines hot paths
- Static Code Generation: Compile-time code generation for Rust, C++, and Go delivers peak performance without runtime overhead
- Zero-Copy Operations: Direct memory access without intermediate buffer copies; row format enables random access and partial serialization
- Intelligent Encoding: Variable-length compression for integers and strings; SIMD acceleration for arrays (Java 16+)
- Meta Sharing: Class metadata packing reduces redundant type information across serializations
🌍 Cross-Language Serialization
The xlang serialization format enables seamless data exchange across programming languages:
- Automatic Type Mapping: Intelligent conversion between language-specific types (type mapping)
- Reference Preservation: Shared and circular references work correctly across languages
- Polymorphism: Objects serialize/deserialize with their actual runtime types
- Schema Evolution: Optional forward/backward compatibility for evolving schemas
- Automatic Serialization: No IDL or schema definitions required; serialize any object directly without code generation
📊 Row Format
A cache-friendly row format optimized for analytics workloads:
- Zero-Copy Random Access: Read individual fields without deserializing entire objects
- Partial Operations: Selective field serialization and deserialization for efficiency
- Apache Arrow Integration: Seamless conversion to columnar format for analytics pipelines
- Multi-Language: Available in Java, Python, Rust and C++
🔒 Security & Production-Readiness
Enterprise-grade security and compatibility:
- Class Registration: Whitelist-based deserialization control (enabled by default)
- Depth Limiting: Protection against recursive object graph attacks
- Configurable Policies: Custom class checkers and deserialization policies
- Platform Support: Java 8-24, GraalVM native image, multiple OS platforms
Java Features
🚀 High Performance
- JIT Code Generation: Highly-extensible JIT framework generates serializer code at runtime using async multi-threaded compilation, delivering 20-170x speedup through:
- Inlining variables to reduce memory access
- Inlining method calls to eliminate virtual dispatch overhead
- Minimizing conditional branching
- Eliminating hash lookups
- Zero-Copy: Direct memory access without intermediate buffer copies; row format supports random access and partial serialization
- Variable-Length Encoding: Optimized compression for integers, longs
- Meta Sharing: Cached class metadata reduces redundant type information
- SIMD Acceleration: Java Vector API support for array operations (Java 16+)