Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sunfishcode/linux-raw-sys

Generated bindings for Linux's userspace API
https://github.com/sunfishcode/linux-raw-sys

Last synced: 27 days ago
JSON representation

Generated bindings for Linux's userspace API

Awesome Lists containing this project

README

        


linux-raw-sys


Generated bindings for Linux's userspace API


Github Actions CI Status
zulip chat
crates.io page
docs.rs docs


This crate contains bindgen-generated bindings for Linux's userspace API.

This is primarily of interest if you want to make raw system calls directly,
which is tedious and error prone and not necessary for most use cases. For a
minimal type-safe, memory-safe, and I/O-safe API to the Linux system calls
built on these bindings, see the [rustix crate].

The full bindings are quite large, so they've been split up into modules and
cargo features. By default, `general` and `errno` are enabled, which provide
most things needed by general-purpose code.

To regenerate the generated bindings, run `cargo update && cd gen && cargo run --release`.

## Similar crates

This is similar to [linux-sys], except the bindings are generated offline,
rather than in a build.rs, making downstream builds simpler. And, this crate
has bindings for more headers, as well as supplementary definitions not
exported by Linux's headers but nonetheless needed by userspace.

# Minimum Supported Rust Version (MSRV)

This crate currently works on the version of [Rust on Debian stable], which is
currently Rust 1.63. This policy may change in the future, in minor version
releases, so users using a fixed version of Rust should pin to a specific
version of this crate.

[linux-sys]: https://crates.io/crates/linux-sys
[rustix crate]: https://github.com/bytecodealliance/rustix#linux-raw-syscall-support