跳到主要内容
版本:dev

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 安全