nixide/rust/nix-c-raw
Robert Hensing 858bec68bc feat: Add crate nix-c-raw
See README. Most of this is in accordance with the bindgen introduction.

The c_headers function was taken from Zach Mitchell's work on bindings.

Co-authored-by: Zach Mitchell <zmitchell@fastmail.com>
(cherry picked from commit 83d8ae6b26d341bbd452a77d7361f58c06a2d322)
2025-09-30 18:19:39 +02:00
..
include feat: Add crate nix-c-raw 2025-09-30 18:19:39 +02:00
src feat: Add crate nix-c-raw 2025-09-30 18:19:39 +02:00
build.rs feat: Add crate nix-c-raw 2025-09-30 18:19:39 +02:00
Cargo.toml feat: Add crate nix-c-raw 2025-09-30 18:19:39 +02:00
README.md feat: Add crate nix-c-raw 2025-09-30 18:19:39 +02:00

nix-c-raw

This crate contains generated bindings for the Nix C API. You should not have to use this crate directly, and so you should probably not add it to your dependencies. Instead, use the nix-util, nix-store and nix-expr crates, which should be sufficient.

Design

Rust bindgen currently does not allow "layered" libraries to be split into separate crates. For example, the expr crate would have all-new types that are distinct and incompatible with the store crate.

Ideally bindgen will support reusing already generated modules, and we could move the code generation into the appropriate crates, so that the system dependencies of each crate become accurate.