Swift AMF 编码器/解码器,使用 Codable。

Build Status

这是一个不完整/正在进行的 Swift 实现,用于动作消息格式的编码和解码。 最初是为了在视频广播领域的 Swift RTMP 实现中使用而构建的。

在 Swift 类型系统的限制下,以及自定义 Codable 编码器/解码器需要编写的方式,将 AMF 解析为 Swift Codable 对象/结构体是相当有限制的。 在 AMF 中进行编码和解码时,几乎不可能不丢失信息/顺序。

一个关于解码(对于 AMF0)工作的很好的例子可以在 AMF0DecodingTests 中的 testAMFObject() 测试中找到,它使用了 RTMP 环境中的真实 AMF0。往返测试也证明了编码。

一旦部署到 RTMP 实现中,此实现将经过更多的实战和性能测试。

目前运行在 *OK* >60% 的覆盖率

待办事项

通用

AMF0

AMF3

感谢!

非常感谢 @matttFlight School Guide to Swift Codable,特别是他的 MessagePack 实现DIY Codable Encoder / Decoder Kit,这两者对于理解如何编写自定义 Codable 编码器/解码器以及现有的(但相当过时的)CocoaAMF 来说是无价的,它帮助我理解了 AMF(特别是 AMF3 - 它是完全疯狂的 - 它有自己专有的 Unsigned29Int,它本身就是位移的)。