Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Rust friendly bindings to *nix APIs

License

NotificationsYou must be signed in to change notification settings

nix-rust/nix

Repository files navigation

Cirrus Build Statuscrates.iodocs.rsmaintenance-statusmsrv

Nix seeks to provide friendly bindings to various *nix platform APIs (Linux, Darwin,...). The goal is to not provide a 100% unified interface, but to unifywhat can be while still providing platform specific APIs.

For many system APIs, Nix provides a safe alternative to the unsafe APIsexposed by thelibc crate. This is done bywrapping the libc functionality with types/abstractions that enforce legal/safeusage.

As an example of what Nix provides, examine the differences between what isexposed by libc and nix for thegethostname systemcall:

// libc api (unsafe, requires handling return code/errno)pubunsafeexternfngethostname(name:*mutc_char,len:size_t) ->c_int;// nix api (returns a nix::Result<OsString>)pubfngethostname() ->Result<OsString>;

Supported Platforms

nix target support consists of three tiers. While nix attempts to support allplatforms supported bylibc, only someplatforms are actively supported due to either technical or manpowerlimitations. Support for platforms is split into three tiers:

  • Tier 1 - Builds and tests for this target are run in CI. Failures of eitherblock the inclusion of new code.
  • Tier 2 - Builds for this target are run in CI. Failures during the buildblocks the inclusion of new code. Tests may be run, but failuresin tests don't block the inclusion of new code.
  • Tier 3 - Builds for this target are run in CI. Failures during the builddo not necessarily block the inclusion of new code. That is, atour discretion a Tier 3 target may be dropped at any time, if itwould otherwise block development.

Platforms not listed are supported on a best-effort basis, relying on our usersto report any problems.

The following targets are supported bynix:

Tier 1Tier 2Tier 3
  • aarch64-apple-darwin
  • aarch64-unknown-linux-gnu
  • arm-unknown-linux-gnueabi
  • armv7-unknown-linux-gnueabihf
  • i686-unknown-freebsd
  • i686-unknown-linux-gnu
  • i686-unknown-linux-musl
  • mips-unknown-linux-gnu
  • mips64-unknown-linux-gnuabi64
  • mips64el-unknown-linux-gnuabi64
  • mipsel-unknown-linux-gnu
  • powerpc64le-unknown-linux-gnu
  • x86_64-unknown-freebsd
  • x86_64-unknown-linux-gnu
  • x86_64-unknown-linux-musl
  • aarch64-apple-ios
  • aarch64-linux-android
  • aarch64-unknown-linux-ohos
  • arm-linux-androideabi
  • arm-unknown-linux-musleabi
  • armv7-linux-androideabi
  • armv7-unknown-linux-ohos
  • i686-linux-android
  • loongarch64-unknown-linux-gnu
  • s390x-unknown-linux-gnu
  • x86_64-linux-android
  • x86_64-unknown-illumos
  • x86_64-unknown-linux-ohos
  • x86_64-unknown-netbsd
  • armv7-unknown-linux-uclibceabihf
  • powerpc64-unknown-linux-gnu
  • x86_64-unknown-fuchsia
  • x86_64-unknown-dragonfly
  • x86_64-unknown-haiku
  • x86_64-unknown-linux-gnux32
  • x86_64-unknown-openbsd
  • x86_64-unknown-redox
  • i686-unknown-hurd-gnu
  • Minimum Supported Rust Version (MSRV)

    nix is supported on Rust 1.69 and higher. Its MSRV will not bechanged in the future without bumping the major or minor version.

    Contributing

    Contributions are very welcome. Please SeeCONTRIBUTING foradditional details.

    Feel free to join us inthe nix-rust/nix channel on Discord todiscussnix development.

    License

    Nix is licensed under the MIT license. SeeLICENSE for more details.


    [8]ページ先頭

    ©2009-2025 Movatter.jp