Python 序列化指南
Apache Fory™ 是一个极速的多语言序列化框架,基于 JIT 编译和零拷贝技术,在保持易用性和安全性的同时提供超高性能。
pyfory 提供 Apache Fory™ 的 Python 实现,为数据处理任务提供高性能对象序列化和先进的行格式能力。
核心特性
灵活的序列化模式
- Python 原生模式:完全 Python 兼容,可替代 pickle/cloudpickle
- 跨语言模式:针对多语言数据交换优化
- 行格式:用于分析工作负载的零拷贝行格式
多功能序列化特性
- 共享/循环引用支持:在 Python 原生和跨语言模式中支持复杂对象图
- 多态支持:自定义类型的自动类型分发
- Schema 演化支持:在跨语言模式下使用 dataclass 时的向后/向前兼容性
- 带外缓冲区支持:零拷贝序列化大型数据结构(如 NumPy 数组和 Pandas DataFrame),兼容 pickle 协议 5
极速性能
- 超快性能:相比其他序列化框架
- 运行时代码生成和 Cython 加速的核心实现,实现最优性能
紧凑数据大小
- 紧凑的对象图协议:最小空间开销——相比 pickle/cloudpickle 减少高达 3 倍大小
- 元数据打包与共享:最小化类型向前/向后兼容性的空间开销
安全性与安全
- 严格模式:通过类型注册和检查防止反序列化不受信任的类型
- 引用跟踪:安全处理循环引用
安装
基础安装
pip install pyfory
可选依赖
# 安装行格式支持(需要 Apache Arrow)
pip install pyfory[format]
# 从源码安装用于开发
git clone https://github.com/apache/fory.git
cd fory/python
pip install -e ".[dev,format]"