一个高效、功能齐全且符合标准的 Swift MessagePack 实现。
import MessagePack
struct MyMessage: Codable {
// ...
}
let myMessage = MyMessage(
// ...
)
// Serialization
let encoder = MessagePackEncoder()
let serializedMessage = try encoder.encode(myMessage)
// Deserialization
let decoder = MessagePackDecoder()
let deserializedMessage = try decoder.decode(MyMessage.self, from: serializedMessage)
查看文档,了解更高级的用例示例。
Codable
序列化系统完全集成。Foundation
值类型,例如 Date
、URL
、Data
和 Decimal
。msgpack-c
参考实现进行测试,验证与 MessagePack 规范的符合性。(截至 2023 年 9 月。)
其他库 | 备注 |
---|---|
nnabeyang/swift-msgpack |
Date 、URL 或 Decimal 的定制支持。 |
hirotakan/MessagePacker |
Decimal 的定制支持。 |
Flight-School/MessagePack |
URL 或 Decimal 的定制支持。 |
swiftstack/messagepack |
❌ 时间戳类型不是 Codable 。 |
malcommac/SwiftMsgPack |
❌ 不支持 Codable 。 |
a2/MessagePack.swift |
❌ 不支持 Codable 。 |
michael-yuji/YSMessagePack |
❌ 不支持 Codable 。 |
briandw/SwiftPack |
❌ 没有 Swift 包清单。 |
速度对比 | 其他库 |
---|---|
速度提高 3 倍 | nnabeyang/swift-msgpack |
速度提高 2 倍 | hirotakan/MessagePacker |
速度提高 6 倍 | Flight-School/MessagePack |
使用涉及高吞吐量或低延迟用例的真实消息进行测试。 欢迎提交拉取请求到 Benchmarks.swift
,如果您知道类似的用例!