rawdog

rawdog 是一个精简的、无依赖* 的 Swift 软件包,旨在简化和加速编程对象的二进制编码和解码过程。

该库的主要效用在于其表达静态分配内存空间的能力,同时自动处理对齐、字节序以及与其他类型的初始化和转换。

在 C 语言中,以下语法常见且高效:uint8_t[1024]。在 Swift 中,尝试实现类似的结果(具有静态长度的非对齐内存分配)简直是一场噩梦……元组字面量在语法上比 C 语言的等价物冗长得多,并且灵活性也明显不足。这正是 rawdog 旨在解决和构建的 Swift 特有问题,同时围绕类型严格性和内存安全维护了一种合理但强大的模式,而 Swift 语法正是以这两者著称。

文档

我对代码本身的结构和清晰度非常满意,但文档覆盖率尚不完整。

密码学

rawdog 为所有密码学功能分发和构建其自身的源代码(用 C 语言编写),包括:

这些源代码附带了一整套测试,这些测试已在 x86 和 ARM、macOS 和 Linux 上通过测试。该代码预计也能原生处理字节序,但坦率地说,我没有验证其能力的手段

密码学归属

rawdog 密码学建立在用 C 语言编写的各种开源贡献之上。这些参考资料均按其原始作者提供的 MIT、ISC 或公共领域许可证获取。所有获得的源代码都已在此 rawdog 软件包中进行了大量修改和重新分发,并采用 MIT 许可证。

版本控制

本项目遵循 SemVer 2.0.0 中概述的标签语义。

要求

鉴于此套件中宏的 критическое 使用,rawdog 需要 Swift 语言 v5.9.0 或更高版本才能成功构建和部署。

许可证

rawdog 及其所有源代码均在 MIT 许可证下提供,不提供任何担保或支持。