Python 序列化
Apache Fory™ Python
Apache Fory™ 是一个极速的多语言序列化框架,基于 JIT 编译和零拷贝技术,在保持易用性和安全性的同时提供超高性能。
pyfory 提供了 Apache Fory™ 的 Python 实现,同时支持高性能对象序列化和用于数据处理任务的高级行格式能力。
🚀 核心特性
🔧 灵活的序列化模式
- Python 原生模式:完全兼容 Python,可作为 pickle/cloudpickle 的直接替代品
- 跨语言模式:针对多语言数据交换优化
- 行格式:用于分析工作负载的零拷贝行格式
🎯 多样的序列化功能
- 共享/循环引用支持:在 Python 原生模式和跨语言模式中支持复杂对象图
- 多态支持:支持自定义类型的自动类型分发
- Schema 演化:在跨语言模式下使用 dataclass 时支持向后/向前兼容
- 带外缓冲区支持:支持大型数据结构(如 NumPy 数组和 Pandas DataFrame)的零拷贝序列化,兼容 pickle protocol 5
⚡ 极速性能
- 相比其他序列化框架具有极快的性能
- 运行时代码生成和 Cython 加速的核心实现,获得最佳性能
📦 紧凑的数据大小
- 紧凑的对象图协议,空间开销极小——相比 pickle/cloudpickle 最多减少 3 倍大小
- 元数据打包和共享,最小化类型向前/向后兼容的空间开销
🛡️ 安全性
- 严格模式通过类型注册和检查防止反序列化不受信任的类型
- 引用跟踪安全处理循环引用
📦 安装
基础安装
使用 pip 安装 pyfory:
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]"