Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 31-Mar-2022 | - | ||||
csmith-fuzzing/ | H | 31-Mar-2022 | - | 66 | 46 | |
src/ | H | 31-Mar-2022 | - | 27,067 | 19,504 | |
.cargo-checksum.json | H A D | 03-May-2022 | 89 | 1 | 1 | |
Cargo.lock | H A D | 31-Mar-2022 | 9 KiB | 350 | 308 | |
Cargo.toml | H A D | 31-Mar-2022 | 2.7 KiB | 114 | 93 | |
LICENSE | H A D | 31-Mar-2022 | 1.5 KiB | 30 | 23 | |
README.md | H A D | 31-Mar-2022 | 2.5 KiB | 80 | 53 | |
build.rs | H A D | 31-Mar-2022 | 2.5 KiB | 83 | 66 |
README.md
1[![crates.io](https://img.shields.io/crates/v/bindgen.svg)](https://crates.io/crates/bindgen) 2[![docs.rs](https://docs.rs/bindgen/badge.svg)](https://docs.rs/bindgen/) 3 4# `bindgen` 5 6**`bindgen` automatically generates Rust FFI bindings to C (and some C++) libraries.** 7 8For example, given the C header `doggo.h`: 9 10```c 11typedef struct Doggo { 12 int many; 13 char wow; 14} Doggo; 15 16void eleven_out_of_ten_majestic_af(Doggo* pupper); 17``` 18 19`bindgen` produces Rust FFI code allowing you to call into the `doggo` library's 20functions and use its types: 21 22```rust 23/* automatically generated by rust-bindgen 0.99.9 */ 24 25#[repr(C)] 26pub struct Doggo { 27 pub many: ::std::os::raw::c_int, 28 pub wow: ::std::os::raw::c_char, 29} 30 31extern "C" { 32 pub fn eleven_out_of_ten_majestic_af(pupper: *mut Doggo); 33} 34``` 35 36## Users Guide 37 38[ Read the `bindgen` users guide here! ](https://rust-lang.github.io/rust-bindgen) 39 40## MSRV 41 42The minimum supported Rust version is **1.40**. 43 44No MSRV bump policy has been established yet, so MSRV may increase in any release. 45 46## API Reference 47 48[API reference documentation is on docs.rs](https://docs.rs/bindgen) 49 50## Environment Variables 51 52In addition to the [library API](https://docs.rs/bindgen) and [executable command-line API][bindgen-cmdline], 53`bindgen` can be controlled through environment variables. 54 55End-users should set these environment variables to modify `bindgen`'s behavior without modifying the source code of direct consumers of `bindgen`. 56 57- `BINDGEN_EXTRA_CLANG_ARGS`: extra arguments to pass to `clang` 58 - Arguments are whitespace-separated 59 - Use shell-style quoting to pass through whitespace 60 - Examples: 61 - Specify alternate sysroot: `--sysroot=/path/to/sysroot` 62 - Add include search path with spaces: `-I"/path/with spaces"` 63 64Additionally, `bindgen` uses `libclang` to parse C and C++ header files. 65To modify how `bindgen` searches for `libclang`, see the [`clang-sys` documentation][clang-sys-env]. 66For more details on how `bindgen` uses `libclang`, see the [`bindgen` users guide][bindgen-book-clang]. 67 68## Releases 69 70We don't follow a specific release calendar, but if you need a release please 71file an issue requesting that (ping `@emilio` for increased effectiveness). 72 73## Contributing 74 75[See `CONTRIBUTING.md` for hacking on `bindgen`!](./CONTRIBUTING.md) 76 77[bindgen-cmdline]: https://rust-lang.github.io/rust-bindgen/command-line-usage.html 78[clang-sys-env]: https://github.com/KyleMayes/clang-sys#environment-variables 79[bindgen-book-clang]: https://rust-lang.github.io/rust-bindgen/requirements.html#clang 80