1 个不稳定版本
使用旧的Rust 2015
0.2.151 | 2024年2月23日 |
---|
#361 in 操作系统
用于 possum-db
4MB
103K SLoC
libc - 平台的系统库原始FFI绑定
libc
提供了与Rust支持的所有平台上的C代码(或“类似C”代码)交互所需的所有定义。这包括类型定义(例如 c_int
)、常量(例如 EINVAL
)以及函数头(例如 malloc
)。
此crate将所有底层平台类型、函数和常量导出在crate根目录下,因此所有项都可通过 libc::foo
访问。所有导出API的类型和值与libc编译的平台匹配。
有关此库设计的更详细信息,请参阅其 相关RFC。
v0.3 路线图
主分支现在是v0.3,它有一些破坏性更改。
对于v0.2,请将PR提交到 libc-0.2
分支。一旦我们在crates.io上发布v0.3,我们将停止发布新的v0.2版本。
有关详细信息,请参阅 跟踪问题。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
libc = "0.2"
特性
-
std
:默认情况下,libc
链接到标准库。禁用此特性可删除此依赖项,并在#![no_std]
crate中使用libc
。 -
extra_traits
:在libc
中实现的全部struct
都是Copy
和Clone
。此特性推导出Debug
、Eq
、Hash
和PartialEq
。 -
const-extern-fn
:将一些extern fn
函数转换为const extern fn
函数。如果你使用 Rust >= 1.62,此功能默认启用。否则,需要使用 nightly rustc。
Rust 版本支持
目前最低支持的 Rust 工具链版本是 Rust 1.71.0(libc 目前没有关于最低支持 Rust 版本的政策;此类政策正在制定中)。
平台支持
你可以在 docs.rs 上看到平台(目标)特定的文档,选择你想要查看的平台。
请参阅 ci/build.sh
以获取 libc
在每个 Rust 工具链上保证可以构建的平台。GitHub Actions 和 Cirrus CI 的测试矩阵显示了运行 libc
测试的平台。
许可协议
本项目许可协议为以下之一
任选其一。
贡献
我们欢迎所有想要贡献的人。请参阅 贡献说明 获取更多信息。
本项目以任何形式(问题、pull request 等)的贡献都必须遵守 Rust 的 行为准则。
除非你明确表示,否则任何有意提交给 libc
的贡献(根据 Apache-2.0 许可协议定义),均应双重许可如上,不附加任何额外条款或条件。