rust-bindgen
rust-bindgen copied to clipboard
Automatically generates Rust FFI bindings to C (and some C++) libraries.
Hi @emilio, would it be possible for there to be a new release? I'd like to be able to use the compile-time layout tests.
### Input C/C++ Header ```C++ // libfuse fetched using pkg_config // Generating bindings for 'fuse.h' ``` ### Bindgen Invocation ```Rust bindgen::builder() // Add clang flags .clang_args(compile_flags) // Derive Debug, Copy...
One of the biggest pain points about using bindgen is installing libclang. It's a massive dependency to manage, and adds pain to the development and deployment of Rust apps. It...
There is a current [pre-RFC for deprecating `static mut` in Rust 2024](https://internals.rust-lang.org/t/pre-rfc-deprecate-then-remove-static-mut/20072/102), in favor of better alternatives. I think bindgen should start using some of these alternatives instead of generating...
Please let me know if a "discussion" would be a better fit... Every C function requires to be wrapped by an unsafe block, otherwise rust complains about it because it...
NOTE: I know this can use some cleanups and more documentation / comments, etc. but for now I'm just uploading it as an RFC to see if you like the...
### Input C/C++ Header ```C++ class IUnknown { public: virtual void Release() { delete this; }; }; class iTH : public IUnknown { public: virtual void AccessibleFunction() = 0; };...
## Background `ParseCallbacks::enum_variant_name` is already useful for renaming enum variants. I'm using it to ensure that generated bindings fit Rust conventions. However, I'd like to also rename struct fields, and...
This issue tracks any C++ features that cannot be translated into Rust by `bindgen`: - Templates: - [ ] https://github.com/rust-lang/rust-bindgen/issues/24: cannot be handled due to Rust lacking support for generics...
When targeting an architecture where the natural alignment of 64-bit integer types is 4 instead of 8, bindgen can create BindgenUnion types that get an alignment of 4 when the...