5 个不稳定版本
0.2.0 | 2023 年 1 月 30 日 |
---|---|
0.1.2 | 2022 年 7 月 23 日 |
0.1.1 | 2022 年 7 月 22 日 |
0.1.0 | 2022 年 7 月 21 日 |
0.0.1 | 2022 年 7 月 21 日 |
#42 in macOS 和 iOS API
7,548 每月下载量
用于 6 个 crate(3 个直接使用)
115KB
2.5K SLoC
apple-sys
与其他平台相比,Apple 平台的开发环境相当单调。在多个开发机器上,我们将可靠地获得相同的 bindgen 结果。那么为什么不为框架直接提供 bindgen 配置呢?
如何使用?
要添加 CoreFoundation 和 IOKit,请尝试运行
$ cargo add apple-sys --features=CoreFoundation,IOKit
如果你使用的是较旧的 cargo 版本,请尝试将其添加到 Cargo.toml 中
apple-sys = { version = "*", features=["CoreFoundation", "IOKit"] }
功能和框架的名称相同。要查看完整列表,请检查 Cargo.toml 文件中的项目功能。
功能名称是模块名称。一切都是单级深度。没有嵌套模块。
use apple_sys::{CoreFoundation, IOKit};
// CoreFoundation::<any name>
// IOKit::<any name>
apple-bindgen
bindgen 工具可安装并生成与 apple-sys crate 相同的结果。要创建一个新的 -sys
项目,从 apple-bindgen
结果开始将是一种方便的方法。
安装
$ cargo install apple-bindgen
要生成 CoreFoundation 绑定,
$ apple-bindgen CoreFoundation --sdk macosx
要生成用于 iOS 的 UIKit 绑定,
$ apple-bindgen UIKit --sdk iphoneos
为什么选择 apple-sys?
apple-sys
包含用于 Apple 平台的自动生成的 bindgen 模块。只要我们使用相同的 SDK 和 bindgen 版本,结果就会是可重复的。
为什么不选择 apple-sys?
持续使用相同的 SDK 并不现实。我同意。不要相信 apple-sys。尽可能使用管理版本。例如,对于 CoreFoundation
,可以使用 core-foundation-sys。
那么为什么我选择 apple-sys?我为小型和非管理框架创建了 apple-sys。apple-sys 将作为最后的备选方案。
贡献
apple-sys 没有计划分发生成的或手动更改的代码。我们将仅管理 bindgen 规则。查看项目根目录的 "bindgen/Bindgen.toml" 文件。
依赖
~0–2MB
~39K SLoC