PackStream 是一种与 MessagePack 非常相似的二进制消息格式。它可以独立使用,但它已被构建为 Bolt 协议的消息格式,用于 Neo4j 服务器与其客户端之间通信。
此实现是用 Swift 编写的,主要是作为 Swift Bolt 实现的依赖项。此实现将为 Theo(Neo4j 的 Swift 驱动程序)提供 Bolt 支持。
通过 PackStream,您可以编码 Bool、Int、Float(Swift 中的 Double)、String、List、Map 和 Structure。它们都实现了 PackProtocol
,因此如果您想有一个可打包项的集合,您可以将它们指定为实现 PackProtocol。
首先,请记住
import PackStream
然后您可以使用它,例如
let map = Map(dictionary: [
"alpha": 42,
"beta": 39.3,
"gamma": "☺",
"delta": List(items: [1,2,3,4])
])
let result = try map.pack()
let restored = try Map.unpack(result)
为从 1 到 40 的数字编码列表
let items = Array(Int8(1)...Int8(40))
let value = List(items: items)
编码到以下字节
D4:28:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13:14:15:16:17:18:19:1A:1B:1C:1D:1E:1F:20:22:23:24:25:26:27:28
要直接与 Xcode 一起使用,请输入 "swift package generate-xcodeproj"
将以下内容添加到 Package.swift 中您依赖项数组
.Package(url: "https://github.com/niklassaers/PackStream-swift.git",
majorVersion: 0),
现在您可以执行
swift build