1 个不稳定版本
使用旧的 Rust 2015
0.0.1 | 2015 年 2 月 21 日 |
---|
76 在 #friendly 中
6KB
233 代码行
Rust 对 *nix API 的绑定
Nix 旨在提供对各种 *nix 平台 API(Linux、Darwin 等)友好的绑定。目标是不要提供一个 100% 统一的接口,而是在提供平台特定 API 的同时尽可能实现统一。
对于许多系统 API,Nix 提供了相对于 libc crate 中暴露的不安全 API 的安全替代方案。这是通过使用类型/抽象包装 libc 功能来强制执行合法/安全的使用来实现的。
以下是一个 Nix 提供的例子,检查 libc 和 nix 对 gethostname 系统调用的暴露差异
// libc api (unsafe, requires handling return code/errno)
pub unsafe extern fn gethostname(name: *mut c_char, len: size_t) -> c_int;
// nix api (returns a nix::Result<OsString>)
pub fn gethostname() -> Result<OsString>;
支持的平台
nix 目标支持分为三个等级。虽然 nix 尝试支持所有由 libc 支持的平台,但由于技术或人力限制,只有一些平台得到积极支持。平台支持分为三个等级
- 第一级 - 在 CI 中运行针对此目标的构建和测试。任一失败都会阻止新代码的包含。
- 第二级 - 在 CI 中运行针对此目标的构建。构建过程中的失败会阻止新代码的包含。可以运行测试,但测试失败不会阻止新代码的包含。
- 第三级 - 在 CI 中运行针对此目标的构建。构建过程中的失败 不一定 会阻止新代码的包含。也就是说,根据我们的判断,一个第三级目标可以在任何时候被移除,如果它否则会阻止开发。
未列出的平台将尽力支持,依靠我们的用户报告任何问题。
以下目标是 nix
支持的
第一级 | 第二级 | 第三级 |
---|---|---|
|
|
|
最低支持的Rust版本(MSRV)
nix支持Rust 1.69及以上版本。其MSRV将不会在未来更改,除非升级主版本或副版本。
贡献
欢迎贡献。请参阅CONTRIBUTING以获取更多详细信息。
欢迎加入我们,在Gitter上的nix-rust/nix频道讨论nix
开发。
许可证
Nix采用MIT许可证。有关详细信息,请参阅LICENSE。