A high-performance multi-language serialization framework using JIT compilation and zero-copy techniques for fast data exchange.
Apache Fory is a blazingly fast serialization framework that enables efficient data exchange across multiple programming languages like Java, Python, Rust, and C++. It solves the performance bottlenecks of traditional serialization by using JIT compilation and zero-copy techniques, achieving significant speedups for microservices communication and data processing.
Developers and engineers building high-performance distributed systems, microservices, data pipelines, or analytics platforms that require fast, cross-language data serialization.
Developers choose Apache Fory for its exceptional performance (up to 170x faster), built-in security with class registration, and seamless cross-language support without sacrificing ease of use or schema evolution capabilities.
A blazingly fast multi-language serialization framework powered by JIT and zero-copy.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages JIT compilation for Java and static code generation for Rust/C++/Go, achieving up to 170x speed improvements over traditional serialization, as demonstrated in extensive language-specific benchmarks.
Enables data exchange between Java, Python, Rust, Go, and more with the xlang format, supporting reference preservation and polymorphism without IDL schemas.
Provides zero-copy random access and partial operations for efficient data processing, with Apache Arrow integration for analytics pipelines.
Whitelist-based class registration is enabled by default to prevent deserialization attacks, alongside configurable depth limiting and policies for production safety.
Binary compatibility is not assured between major releases (only minor versions), requiring data versioning and migration strategies that add long-term maintenance overhead.
Requires explicit class registration, careful mode selection (native vs xlang), and security configuration, which can be error-prone and steep for quick adoption.
Cross-language serialization only supports types common across all languages, restricting use of language-specific features and adding metadata overhead that reduces performance compared to native mode.
Fury is an open-source alternative to the following products:
JSON (JavaScript Object Notation) is a lightweight data-interchange format that is easy for humans to read and write and for machines to parse and generate.
Apache Avro is a data serialization system that provides rich data structures, a compact binary format, and integration with dynamic languages. It's commonly used in Apache Hadoop and Apache Kafka ecosystems.
MessagePack is an efficient binary serialization format that enables fast data exchange between multiple languages like JSON, but smaller and faster.
Protocol Buffers (protobuf) is a language-neutral, platform-neutral extensible mechanism for serializing structured data, developed by Google for efficient data interchange.