libc

Raw bindings to platform APIs for Rust

Github星跟踪图

Azure Status Cirrus CI Status Latest Version Documentation License

libc - Raw FFI bindings to platforms' system libraries

libc provides all of the definitions necessary to easily interoperate with C
code (or "C-like" code) on each of the platforms that Rust supports. This
includes type definitions (e.g. c_int), constants (e.g. EINVAL) as well as
function headers (e.g. malloc).

This crate exports all underlying platform types, functions, and constants under
the crate root, so all items are accessible as libc::foo. The types and values
of all the exported APIs match the platform that libc is compiled for.

More detailed information about the design of this library can be found in its
associated RFC.

Usage

Add the following to your Cargo.toml:

[dependencies]
libc = "0.2"

Features

  • std: by default libc links to the standard library. Disable this
    feature remove this dependency and be able to use libc in #![no_std]
    crates.

  • extra_traits: all structs implemented in libc are Copy and Clone.
    This feature derives Debug, Eq, Hash, and PartialEq.

  • const-extern-fn: Changes some extern fns into const extern fns.
    This features requires a nightly rustc

  • deprecated: use_std is deprecated, and is equivalent to std.

Rust version support

The minimum supported Rust toolchain version is Rust 1.13.0 . APIs requiring
newer Rust features are only available on newer Rust toolchains:, Feature, Version, ----------------------, ---------, union, 1.19.0, const mem::size_of, 1.24.0, repr(align), 1.25.0, extra_traits, 1.25.0, core::ffi::c_void, 1.30.0, repr(packed(N)), 1.33.0, ## Platform support

Platform-specific documentation (master branch).

See
ci/build.sh
for the platforms on which libc is guaranteed to build for each Rust
toolchain. The test-matrix at Azure and Cirrus CI show the
platforms in which libc tests are run.

License

This project is licensed under either of

at your option.

Contributing

We welcome all people who want to contribute. Please see the contributing
instructions
for more information.

Contributions in any form (issues, pull requests, etc.) to this project
must adhere to Rust's Code of Conduct.

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in libc by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.

主要指标

概览
名称与所有者rust-lang/libc
主编程语言Rust
编程语言Shell (语言数: 6)
平台
许可证Apache License 2.0
所有者活动
创建于2015-01-13 23:54:27
推送于2025-11-04 16:19:20
最后一次提交
发布数205
最新版本名称ctest-v0.5.0-beta.1 (发布于 2025-11-03 18:19:04)
第一版名称0.2.0 (发布于 )
用户参与
星数2.4k
关注者数39
派生数1.2k
提交数8.8k
已启用问题?
问题数792
打开的问题数137
拉请求数3425
打开的拉请求数54
关闭的拉请求数533
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?