Swift 序列化指南
Apache Fory Swift 提供高性能对象图序列化,同时具备强类型安全、基于宏的代码生成、Schema 演进能力以及跨语言兼容性。
为什么选择 Fory Swift?
- 面向 Swift 值类型和引用类型的高性能二进制序列化
- 使用
@ForyObject宏,几乎无需样板代码即可让模型支持序列化 - 通过
xlang协议与 Java、Rust、Go、Python 等运行时互通 - 通过兼容模式支持跨版本 Schema 演进
- 内置支持动态值,例如
Any、AnyObject、any Serializer、AnyHashable - 支持共享引用和循环引用跟踪,类类型还支持
weak引用场景
安装
通过 Apache Fory GitHub 仓库将 Fory Swift 添加到 Swift Package Manager:
dependencies: [
.package(url: "https://github.com/apache/fory.git", exact: "$version")
],
targets: [
.target(
name: "MyApp",
dependencies: [
.product(name: "Fory", package: "fory")
]
)
]
指南目录
快速示例
import Fory
@ForyObject
struct User: Equatable {
var name: String = ""
var age: Int32 = 0
}
let fory = Fory()
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)