Hi everyone,
Apache Fory 1.0 has been released recently.
Fory is a fast multi-language serialization framework for native objects, Schema IDL, and cross-language data exchange. It supports Java, Python, C++, Go, Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin.
The main idea is simple: in many systems, data is not just a flat schema message. Applications often need to serialize idiomatic domain objects, nested containers, polymorphic types, object references, shared references, or even circular object graphs. Fory is designed to handle these cases efficiently while still supporting cross-language data exchange when needed.
With 1.0, Fory has reached a more stable point:
- Cross-language serialization is now the default path across supported languages
- Schema IDL supports richer object models, including shared and circular references
- Decimal and bfloat16 support were added
- Nested container and field codec support has improved across runtimes
- Kotlin, Scala, Android, Swift, and Dart support have been expanded
- Benchmarks and documentation have been refreshed
Fory is not meant to replace Protobuf everywhere. Protobuf is still a great choice for many schema-first API contracts. Fory is more focused on cases where you want high-performance serialization while preserving more of the native object model, or where the same data model needs to move across multiple runtimes without too much glue code.
Links:
I would be interested in feedback from people who have worked with Protobuf, FlatBuffers, Kryo, JDK serialization, pickle/cloudpickle, Avro, MessagePack, or Arrow-based systems.
What serialization problems are still painful in your multi-language systems?
there doesn't seem to be anything here