CBORCoding 是一个轻量级的框架,包含一个编码器对,用于将符合 Codable
协议的类型编码和解码为 iOS、macOS、tvOS 和 watchOS 平台的 CBOR 文档格式。
CBORCoding 可以通过 CocoaPods、Carthage 和 Swift Package Manager 进行安装。
要通过 CocoaPods 安装,只需将以下行添加到您的 Podfile 中
pod 'CBORCoding'
要通过 Carthage 安装,只需将以下行添加到您的 Cartfile 中
github "SomeRandomiOSDev/CBORCoding"
要通过 Swift Package Manager 安装,请将以下行添加到您的 Package.swift
文件的 dependencies
中
.package(url: "https://github.com/SomeRandomiOSDev/CBORCoding.git", from: "1.0.0")
首先在您的 Swift 文件的顶部导入 CBORCoding
import CBORCoding
导入后,使用方法与 Swift Foundation 库提供的 JSONEncoder
/JSONDecoder
类对几乎相同。 此示例显示了如何将简单 Car
类型的实例编码为 CBOR 对象
struct Car: Codable {
var manufacturer: String
var model: String
var horsePower: Int
var description: String?
}
let stinger = Car(manufacturer: "Kia", model: "Stinger GT2", horsePower: 365, description: nil)
let encoder = CBOREncoder()
let encodedData = try encoder.encode(stinger)
print("CBOR: \(hexString(encodedData))")
/* Prints:
CBOR: 0xA36C6D616E756661637475726572634B6961656D6F64656C6B5374696E676572204754326A686F727365506F77657219016D
*/
此示例显示了如何在稍后解码该编码的 Car
值
let decoder = CBORDecoder()
let stinger = try decoder.decode(Car.self, from: encodedData)
简洁二进制对象表示是一种数据格式,用于能够编码格式化的数据,目标是尽可能减小消息大小。
虽然此框架尽可能多地实现了规范,但仍有一些值得注意的例外情况
Codable
依赖于 CodingKey
来编码/解码其键控容器,因此该框架支持的键类型仅限于 Int
和 String
。Int64
或 UInt64
类型的 Bignums。有关 CBOR 格式的更多信息,请参见:CBOR & RFC 8949。
无论是提交功能请求、报告错误还是自己编写代码,都欢迎对该库的所有贡献! 请参阅 CONTRIBUTING,以获取有关如何贡献的更多信息。
Joe Newton, somerandomiosdev@gmail.com
CBORCoding 主要基于 Swift 提供的 JSONEncoder
/JSONDecoder
类。 有关更多详细信息,请参见 ATTRIBUTIONS
。
CBORCoding 在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE
文件。