SwiftLocation

它就像 JSON,但速度更快!

Carthage compatible CI Status Version License Platform

这是什么?

MessagePack 是一种高效的二进制序列化格式,它可以让你在多种语言之间交换数据,就像 JSON 一样,但它更快更小。 小整数被编码成单个字节,而典型的短字符串只需要在字符串本身之外再多一个字节。
你可以从主网站直接阅读更多关于 规范 的信息。
此外,它是纯 Swift 编写的,没有依赖项,轻量级且完全可移植

您的支持

嗨,开发者朋友!
您知道,维护和开发工具会消耗资源和时间。 虽然我喜欢制作它们,但您的支持对于让我继续开发至关重要

如果您正在使用 SwiftLocation 或我的任何其他作品,请考虑以下选项

索引

如何使用:一键打包 & 解包

序列化和反序列化都发生在 Data 对象中。

为了打包一个或多个对象,你需要创建一个空的 Data 实例,并通过传递你想要序列化的对象来调用 pack。 这很简单,看这里

var data = Data()
do {
  let obj1 = "Hello World"
  let obj2 = 45.5
  let obj3: [AnyHashable:Any?] = [ "key_1" : "value test","key_2" : 4,"key_3" : true, otherHashableKey: "value1"]
  // Now you can pack your instances by passing them to pack function
  try data.pack(obj1,obj2,obj3)
} catch {
  print("Something went wrong while packing data: \(error)")
}

反序列化数据也很简单,只需使用 msgpack 数据调用 Data 实例的 unpack 函数即可

let data: Data = // msgpack data...
do {
  let decodedObj: Any? = try data.unpack()
} catch {
  print("Something went wrong while unpacking data: \(error)")
}

支持的类型

SwiftMsgPack 支持以下 Swift 类型

以下限制由 MsgPack 规范格式 指定

安装

你可以使用 CocoaPods, carthage 和 Swift 包管理器来安装 Swiftline

CocoaPods

use_frameworks!
pod 'SwiftMsgPack'

Carthage

github 'malcommac/SwiftMsgPack'

Swift Package Manager (Swift 包管理器)

在你的 Package.swift 中添加 swiftline 作为依赖项

import PackageDescription

let package = Package(name: "YourPackage",
  dependencies: [
    .Package(url: "https://github.com/malcommac/SwiftMsgPack.git", majorVersion: 0),
  ]
)

测试

SwiftMsgPack 使用 XCTest 进行了广泛的覆盖。 你可以在 Tests/SwiftMsgPackTests 文件夹中找到完整的测试列表。 也可以使用 XCode 运行 SwiftMsgPack 项目来运行测试。

贡献

版权 & 致谢

SwiftLocation 目前由 Daniele Margutti 拥有和维护。
你可以在 Twitter 上关注我 @danielemargutti
我的网站是 https://www.danielemargutti.com

本软件根据 MIT 许可证 授权。

关注我: