gpt4 book ai didi

c - 在 swift 中包装像 facebook 的 ZStandard 这样的库?

转载 作者:搜寻专家 更新时间:2023-10-31 22:29:55 24 4
gpt4 key购买 nike

Facebook 创建了一种开源快速无损压缩算法,针对 zlib 级别的实时压缩场景和更好的压缩比,称为 ZStandard .

zstd

我一直在寻找描述 c 到 swift 包装的教程,例如 this , 但看起来不够全面,在编写包装器之前我必须了解哪些先决条件?

  • 等我写完了,我也会把它开源。

最佳答案

谢谢你的好问题。我看过图书馆并玩过它,它看起来很有趣。

我会说您需要在 C 程序中熟练使用 ZSTD C 库。您还需要熟练使用 Swift 进行编程。根据您要包装的 API 部分,您可能需要了解如何在 Swift 中处理原始内存(Unsafe... 类型)。

包装 ZSTD 时需要考虑的一些挑战:

  • 带有字典的流式 API 是实验性的,并受变化,但使用词典是 ZSTD 的优势之一。
  • 在处理内存缓冲区时,我们希望尽量减少复制它们,因为缓冲区可能非常大并且复制它们会产生不利影响影响性能。这当然会使内存管理复杂化。

在编写包装器时,您可以选择多种方法。例如,您可以用 C 语言编写包装器,以公开您将用 Swift 包装的简单 API。您可以在包装器框架中包含 C 代码,也可以将其保存在单独的 C 库中。

我想出了一个围绕 API 的一小部分进行包装的简单示例,您可以查看 https://github.com/omniprog/SwiftZSTD .

关于c - 在 swift 中包装像 facebook 的 ZStandard 这样的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40617471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com