- Notifications
You must be signed in to change notification settings - Fork701
Rust friendly bindings to *nix APIs
License
nix-rust/nix
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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>;
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 1 | Tier 2 | Tier 3 |
---|---|---|
|
|
nix is supported on Rust 1.69 and higher. Its MSRV will not bechanged in the future without bumping the major or minor version.
Contributions are very welcome. Please SeeCONTRIBUTING foradditional details.
Feel free to join us inthe nix-rust/nix channel on Discord todiscussnix
development.
Nix is licensed under the MIT license. SeeLICENSE for more details.
About
Rust friendly bindings to *nix APIs
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.