#kernel #macos #darwin

未维护 无std mach

为OSX底层Mach 3.0内核的用户空间API提供Rust接口

16个版本

使用旧Rust 2015

0.3.2 2019年6月1日
0.2.3 2018年10月29日
0.2.0 2018年4月20日
0.1.2 2018年1月26日
0.0.2 2015年2月8日

macOS和iOS API 中排名第103

Download history 136266/week @ 2023-12-12 113088/week @ 2023-12-19 52331/week @ 2023-12-26 125330/week @ 2024-01-02 131377/week @ 2024-01-09 158975/week @ 2024-01-16 147641/week @ 2024-01-23 151728/week @ 2024-01-30 161327/week @ 2024-02-06 142440/week @ 2024-02-13 145615/week @ 2024-02-20 142504/week @ 2024-02-27 136044/week @ 2024-03-05 130864/week @ 2024-03-12 143563/week @ 2024-03-19 107320/week @ 2024-03-26

每月下载量达到546,946
1,887 个crate中使用 (49 个直接使用)

BSD-2-Clause

80KB
2K SLoC

Build Status Latest Version docs

为macOS底层Mach 3.0内核在 /usr/include/mach 中公开的用户空间API提供Rust接口,该API通过 libSystem (和 libsystem_kernel) 链接。

该库不公开Mach 3.0内核在 SDK/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/mach 中公开的内核空间API。

也就是说,如果你正在编写内核驻留的设备驱动程序或其他内核扩展,你必须使用其他东西。用户空间内核API通常与内核空间API不兼容,即使在它们匹配的情况下,它们有时也会在ABI上不兼容,使用此库可能会导致 未定义的行为

用法

将以下内容添加到你的 Cargo.toml 中,以便在有支持的平台上条件性地包含mach。

[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.mach]
version = "0.3"

以下crate功能可用

  • 已弃用 (默认禁用):公开已从最新版本的macOS SDKs中删除的已弃用API。在不受支持的macOS版本上使用这些API的行为是未定义的(希望是链接器错误)。

平台支持

以下表格描述了当前的CI设置

目标 最小Rust XCode 构建 测试 运行
x86_64-apple-darwin 1.33.0 6.4 - 10.0
i686-apple-darwin 1.33.0 6.4 - 10.0
i386-apple-ios 1.33.0 6.4 - 9.4 [0] - -
x86_64-apple-ios 1.33.0 6.4 - 10.0 - -
armv7-apple-ios nightly 6.4 - 10.0 - -
aarch64-apple-ios nightly 6.4 - 10.0 - -

[0] i386-apple-ios 在XCode 10.0中已弃用。

依赖项