CBORCoding

License MIT CocoaPods Compatible Carthage Compatible Platform Code Coverage

Carthage Cocoapods Documentation Swift Package SwiftLint XCFramework Xcode Project

CBORCoding 是一个轻量级的框架,包含一个编码器对,用于将符合 Codable 协议的类型编码和解码为 iOS、macOS、tvOS 和 watchOS 平台的 CBOR 文档格式。

安装

CBORCoding 可以通过 CocoaPodsCarthageSwift 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)

CBOR

简洁二进制对象表示是一种数据格式,用于能够编码格式化的数据,目标是尽可能减小消息大小。

虽然此框架尽可能多地实现了规范,但仍有一些值得注意的例外情况

有关 CBOR 格式的更多信息,请参见:CBOR & RFC 8949

贡献

无论是提交功能请求、报告错误还是自己编写代码,都欢迎对该库的所有贡献! 请参阅 CONTRIBUTING,以获取有关如何贡献的更多信息。

作者

Joe Newton, somerandomiosdev@gmail.com

鸣谢

CBORCoding 主要基于 Swift 提供的 JSONEncoder/JSONDecoder 类。 有关更多详细信息,请参见 ATTRIBUTIONS

许可证

CBORCoding 在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE 文件。