TL;DR:Apache Fory Rust 让跨语言序列化同时拥有顶级性能与顺滑开发体验。它以 Rust 的安全模型为基础,通过零拷贝、自动引用管理和自适应 schema 演进,处理循环引用、trait 对象、多语言互通等棘手场景而无需额外样板代码。
- 🐙 GitHub: https://github.com/apache/fory
- 📦 Crate: https://crates.io/crates/fory

序列化的三难选择
后台工程师迟早会撞上这堵墙:系统里充满嵌套结构、循环引用、运行时多态,你却只能在以下三种糟糕方案里挑一个:
- 速度快却脆弱:手写二进制协议,一遇到 schema 变动就整体崩塌
- 灵活却迟钝:JSON、Protocol Buffers 性能动辄慢一个数量级
- 功能全却掣肘:现成框架不理解 你语言里的高级抽象
Apache Fory Rust 把这个难题彻底推翻:不需要 IDL、不用同步 schema,也无需牺牲吞吐量,就能把复杂对象牢牢握在手里。
Apache Fory Rust 的独到之处
1. 真正的跨语言互操作
Fory Rust 与 Java、Python、C++、Go 等官方实现走的是同一套二进制协议。Rust 里写入、Python 里读出,二进制直接通用,无需生成代码,也不存在版本错配。
// Rust: Serialize
let user = User {
name: "Alice".to_string(),
age: 30,
metadata: HashMap::from([("role", "admin")]),
};
let bytes = fory.serialize(&user);
// Python: Deserialize (same binary format!)
user = fory.deserialize(bytes) # Just works!
