Swift 对象序列化
Apache Fory Swift 提供高性能对象图序列化,具备强类型安全、基于宏的代码生成、Schema 演进和跨语言兼容性。
为什么选择 Fory Swift?
- 面向 Swift 值类型和引用类型的快速二进制序列化
- 使用
@ForyStruct、@ForyEnum和@ForyUnion宏实现无样板代码的模型序列化 - Xlang 协议兼容 Java、Rust、Go、Python 等语言
- 使用兼容模式实现跨版本 Schema 演进
- 支持外部结构化序列化器、自定义序列化器和递归组合的载体序列化器
- 内置支持动态值和任意应用 protocol existential
- 对共享/循环对象图进行引用跟踪,包括 class 上的弱引用
安装
从 Apache Fory GitHub 仓库添加 Fory Swift:
dependencies: [
.package(url: "https://github.com/apache/fory.git", exact: "$version")
],
targets: [
.target(
name: "MyApp",
dependencies: [
.product(name: "Fory", package: "fory")
]
)
]
指南目录
快速示例
import Fory
@ForyStruct
struct User: Equatable {
var name: String = ""
var age: Int32 = 0
}
let fory = Fory()
try fory.register(User.self, id: 1)
let input = User(name: "alice", age: 30)
let data = try fory.serialize(input)
let output: User = try fory.deserialize(data)
assert(input == output)
解码来自应用信任边界之外的字节之前,请阅读 Swift 安全。