NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #317 most downloaded on crates.io
Automatically generates Rust FFI bindings to C and C++ libraries.
Last release 1 months ago
08 Sep 2026
Release timing varies
gaps range from 3 weeks to 12 months
Most releases are documented
notes for 53 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
12 years old
129 releases · first in 2014
Fixed various regressions with over/underaligned types with respect to 0.72 (#3449,#3453,#3458).
Widened acceptable prettyplease / syn dependency versions (#3447).
One column per quarter.
Add Debug, Clone and Eq traits to ParseCallbacks info types (#3233).
Debug, Clone and Eq traits to ParseCallbacks info types (#3233).ParseCallbacks (#3244).ParseCallbacks::new_item_found (#3249).extern function blocks (#3257).libcpp feature to link libclang against libc++ (#3375).NonNull for C++ references (#3292).Bindings::write now takes impl Write instead of Box<dyn Write>
(#3317, #3324).const __BindgenUnionField accessors and comply with Rust 2024
unsafe_op_in_unsafe_fn (#3337).OsStr before opening it (#3315).NoHeadersProvided error instead of generating empty bindings
when no input headers are provided (#3391).syn to v3 (#3401) and shlex to v2 (#3380).RustTarget constants (#3281).itertools (#3408).--rustified-non-exhaustive-enums (#3266).C and C-unwind function types (#3156).f32 NAN, INFINITY and NEG_INFINITY constants
(#3300).i64 (#3301).add_derives callback (#3296).size_t_is_usize check (#3313).1.71.1-beta and 1.71.1-nightly
(#3329).extern block for functions and statics so shared symbols
are only declared once (#3367, #3371).Debug impl for new-type alias wrappers when the inner type
only has a manual impl (#3411).This is just 0.72.0 with a fix for a breaking change in clang (see #3264 and related).
This is just 0.72.0 with a fix for a breaking change in clang (see #3264 and related).
Full Changelog: v0.72.0...v0.72.1
Report enums in ParseCallbacks.
rustfmt --format ... paramFull Changelog: v0.71.1...v0.72.0
We are happy to announce a new release of bindgen 🎉
We are happy to announce a new release of bindgen 🎉
--version and --generate-shell-completions (#3040)bindgenUpgrade to this release by updating your Cargo.toml:
bindgen = "0.71.1"bindgen-clicargo binstallJust run
cargo binstall bindgen-clicurl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-lang/rust-bindgen/releases/download/v0.71.1/bindgen-cli-installer.sh | sh| File | Platform | Checksum |
|---|---|---|
| bindgen-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| bindgen-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| bindgen-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Just run
cargo install bindgen-cliThanks to everyone who contributed to this release!
Want to join us? Check out our CONTRIBUTING.md and take a look
at some of these issues:
Want to help improve our documentation? Check out the issues labeled "docs".
Found a bug with bindgen? File an issue here.
We are happy to announce a new release of bindgen 🎉
We are happy to announce a new release of bindgen 🎉
ParseCallbacks::new_item_found callback to expose the original and final name of structs, unions and enums (#2658).field_type_name field to FieldInfo to expose the name of the type of a field (#2863)--with-attribute-custom flag (#2866)--rust-target to any Rust version supported by bindgen (#2993)--generate-cstr flag is used for Rust targets after 1.77 under the 2021 edition (#2996)--rust-edition flag which allows to select which Rust edition to target. (#3002, #3013)unsafe extern instead of extern in blocks for any Rust target after 1.82. (#3015)--wrap-static-fns related options no longer require the experimental feature or flag (#2928)Display implementation instead of the Debug one for BindgenError in bindgen-cli (#3005)libloading are now wrapped in unsafe blocks when using dynamic loading (#2961)ParseCallbacks::field_visibility callback is now called for newtypes as well (#2967)addr_of and addr_of_mut macros under the 1.51 rust version (#2988)bindgenUpgrade to this release by updating your Cargo.toml:
bindgen = "0.71.0"bindgen-clicargo binstallJust run
cargo binstall bindgen-clicurl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-lang/rust-bindgen/releases/download/v0.71.0/bindgen-cli-installer.sh | sh| File | Platform | Checksum |
|---|---|---|
| bindgen-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| bindgen-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| bindgen-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Just run
cargo install bindgen-cliThanks to everyone who contributed to this release!
Want to join us? Check out our CONTRIBUTING.md and take a look
at some of these issues:
Want to help improve our documentation? Check out the issues labeled "docs".
Found a bug with bindgen? File an issue here.
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-lang/rust-bindgen/releases/download/v0.70.1/bindgen-cli-installer.sh | sh| File | Platform | Checksum |
|---|---|---|
| bindgen-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| bindgen-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| bindgen-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
const layout tests were triggering the unnecessary_operation and identity_op clippy warnings.Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-lang/rust-bindgen/releases/download/v0.70.0/bindgen-cli-installer.sh | sh| File | Platform | Checksum |
|---|---|---|
| bindgen-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| bindgen-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| bindgen-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
bindgen-cli errors to stderr instead of stdout (#2840)--formatter=prettyplease not working in bindgen-cli by adding prettyplease feature and
enabling it by default for bindgen-cli (#2789) .--allowlist-item so anonymous enums are no longer ignored (#2827).f64::INFINITY, f64::NEG_ INFINITY, f64::NAN (#2854).tempfile and rustix due to GHSA-c827-hfw6-qwvm.Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-lang/rust-bindgen/releases/download/v0.69.5/bindgen-cli-installer.sh | sh| File | Platform | Checksum |
|---|---|---|
| bindgen-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| bindgen-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| bindgen-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-lang/rust-bindgen/releases/download/v0.69.4/bindgen-cli-installer.sh | sh| File | Platform | Checksum |
|---|---|---|
| bindgen-cli-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
| bindgen-cli-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
| bindgen-cli-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-lang/rust-bindgen/releases/download/v0.69.3/bindgen-cli-installer.sh | sh| File | Platform | Checksum |
|---|---|---|
| bindgen-cli-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
| bindgen-cli-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
| bindgen-cli-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-lang/rust-bindgen/releases/download/v0.69.2/bindgen-cli-installer.sh | sh| File | Platform | Checksum |
|---|---|---|
| bindgen-cli-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
| bindgen-cli-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
| bindgen-cli-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
Allow to run bindgen -v without an input header argument.
bindgen -v without an input header argument.This constant has been marked as deprecated and users will have to use the new CargoCallbacks::new method in the future.
ParseCallbacks::header_file callback which runs on every filename passed to Builder::header.CargoCallbacks::new constructor which emits a cargo-rerun line
for every input header file by default.CargoCallbacks::rerun_on_header_files method to configure whether
a cargo-rerun line should be emitted for every input header file.--wrap-static-fns feature was updated so function types that has no
argument use void as its sole argument.CargoCallbacks is no longer a unit-like
struct and the
CargoCallbacks constant was added to mitigate the breaking nature of this
change. This constant has been marked as deprecated and users will have to
use the new CargoCallbacks::new method in the future.bindgen-cli with a static libclang.Self, self,
crate or super.Fixed errors on the windows artifact build process.
The system ABI is now supported as an option for the --override-abi flag.
system ABI is now supported as an option for the --override-abi flag.allowlist_item method and the --allowlist-item flag have been
included to filter items regardless or their kind.Clone implementation for _BindgenUnionField has been changed to pass
the incorrect_clone_impl_on_copy_type Clippy lint.c_unwind ABI can be used without a feature gate for any Rust target version
equal to or greater than 1.71.
This comes as a result of the ABI being stabilised (in Rust 1.71).CStr constants when using the --generate-cstr
option.extra_assert and extra_assert_eq macros are no longer exported.self, crate,
super or Self.Revert source order sorting (#2543) due to correctness regressions #2558.
Added the --generate-cstr CLI flag to generate string constants as &CStr instead of &[u8]. (Requires Rust 1.59 or higher.)
--generate-cstr CLI flag to generate string constants as &CStr
instead of &[u8]. (Requires Rust 1.59 or higher.)--generate-shell-completions CLI flag to generate completions for
different shells.--wrap-static-fns option can now wrap va_list functions as variadic functions
with the experimental ParseCallbacks::wrap_as_variadic_fn method.ParseCallbacks::field_visibility method to modify field visibility.&[u8; SIZE])
instead of arrays ([u8; SIZE]) to match UTF-8 strings.void no longer contain a return
statement and only call the static function instead.--wrap-static-fns option no longer emits wrappers for static variadic
functions.--depfile or Builder::depfile will now properly
generate module names and paths that include spaces by escaping them. To make
the escaping clear and consistent, backslashes are also escaped.bitflags dependency to 2.2.1. This changes the API of CodegenConfig.bindgen as a library._bindgen_* names having a different index.Remove redundant Cargo features, which were all implicit:
env_logger and log removed in favor of logginglog removed in favor of loggingwhich removed in favor of which-loggingannotate-snippets removed in favor of experimentalPrettyplease is available as a Formatter variant now.
The Builder::rustfmt_bindings method was added back and tagged as deprecated instead of being removed.
Builder::rustfmt_bindings method was added back and tagged as
deprecated instead of being removed.The Builder::rustfmt_bindings methods and the --no-rustfmt-bindings flag are now deprecated in favor of the formatter API.
Builder::default_visibility method and the
--default-visibility flag to set the default visibility of fields. (#2338)--formatter CLI flag with the values none, rustfmt and
prettyplease to select which tool will be used to format the bindings. The
default value is rustfmt. (#2453)Builder::formatter method and the Formatter type to select
which tool will be used to format the bindings. (#2453)Builder::emit_diagnostics method and the --emit-diagnostics
flag to enable emission of diagnostic messages under the experimental
feature. (#2436)"efiapi" calling convention (#2490).ParseCallbacks::read_env_var method which runs everytime
bindgen reads and environment variable. (#2400)ParseCallbacks::generated_link_name_override method which allow
overriding the link name of items. (#2425)enums when generating code while using the
--wrap-static-fns feature. (#2415)void as their single argument
instead of having no arguments when the --wrap-static-fns flag is used.
(#2443)--wrap-static-fns flag is enabled now
contains #include directives with all the input headers and all the source
code added with the header_contents method. (#2447)--wrap-static-fns flag no longer uses
asm labeling and the link name of static wrapper functions is allowed to
be mangled. (#2448)type aliases now matches the comments
of their typedef counterparts instead of using the comments of the aliased
types. (#2463)Builder::rustfmt_bindings methods and the --no-rustfmt-bindings flag
are now deprecated in favor of the formatter API. (#2453)--use-msvc-mangling,
--rustfmt-bindings and --size_t-is-usize. (#2408)Bindings::emit_warnings and Bindings::warnings methods were removed
in favor of --emit-diagnostics. (#2436)Added a new set of flags --with-derive-custom, --with-derive-custom-struct, --with-derive-custom-enum and --with-derive-custom-enum to add custom deri
--with-derive-custom,
--with-derive-custom-struct, --with-derive-custom-enum and
--with-derive-custom-enum to add custom derives from the CLI.--experimental flag on bindgen-cli and the experimental
feature on bindgen to gate experimental features whose implementation is
incomplete or are prone to change in a non-backwards compatible manner.--wrap-static-fns, --wrap-static-fns-suffix and --wrap-static-fns-path
to generate C function wrappers for static or static inline functions.
This feature is experimental.enum and a typedef with the same
name.ParseCallbacks::generated_name_override method now receives ItemInfo<'_> as
argument instead of a &str.clang-sys crate version to 1.4.0 to support clang 15.void.clap dependency for bindgen-cli to 4.bindgen-cli argument parser which could introduce unexpected
behavior changes.ParseCallbacks::add_derives method now receives DeriveInfo<'_> as
argument instead of a &str. This type also includes the kind of target type.All the rust targets equal or lower than 1.30 are being deprecated and will be removed in the future. If you have a good reason to use any of these ta…
process_comments method to the ParseCallbacks trait to
handle source code comments.--wrap_unsafe_ops
option is enabled.name: &str argument for ParseCallbacks::add_derives by
info: DeriveInfo.1.30 are being deprecated and
will be removed in the future. If you have a good reason to use any of these
targets, please report it in the issue tracker.whitelist_recursively, hide_type, blacklist_type,
blacklist_function, blacklist_item, whitelisted_type,
whitelist_type, whitelist_function, whitelisted_function,
whitelist_var, whitelisted_var, unstable_rust.new feature: --override-abi flag to override the ABI used by functions matching a regular expression.
--override-abi flag to override the ABI used by functions
matching a regular expression.C-unwind ABI in --override-abi on nightly
rust.a|b) is handled correctly but
wildcard patterns (*) are now considered invalid. The .* pattern can be
used as a replacement.ParseCallbackstrait does not require to implement UnwindSafe.Builder::parse_callbacks method no longer overwrites previously added
callbacks and composes them in a last-to-first manner.new feature: --sort-semantically flag to sort the output in a predefined manner [(#1743)].
Released 2022/10/16
--sort-semantically flag to sort the output in a predefined
manner (#1743).Bindgen::emit_warnings method to emit warnings to stderr in
build scripts.--newtype-global-enum flag to generate enum variants as
global constants.--default-non-copy-union-style flag to set the default style
of code used to generate unions with non-Copy members.--bindgen-wrapper-union flag to mark any union that matches a
regex and has a non-Copy member to use a bindgen-generated wrapper for its
fields.--manually-drop-union flag to mark any union that matches a
regex and has a non-Copy member to use ManuallyDrop.--merge-extern-blocks flag to merge several extern blocks
that have the same ABI.--no-size_t-is-usize flag to not bind size_t as usize.Builder implements Clone.--enable-function-attribute-detection flag is also used to detect
diverging functions so the generated bindings use ! as the return type.--size_t-is-usize flag is enabled by default.<stdint.h> types are no longer emitted.blocklist options now can be used to block objective-C methods.core::ffi module is used the sized raw integer types
instead of std::os::raw if the Rust target version is 1.64 or higher and
the --use-core flag is enabled.bindgen CLI utility must be installed using cargo install bindgen-cli now.bindgen as a library no longer pulls clap and any other CLI
related dependencies.Fixed stack overflow in generated tests for structs with many fields (#2219).
Released 2022/06/06
Objective-C structs now derive Debug and Copy to support C and Objective-C structs. [(#2176)][]
Released 2022/06/05
Debug and Copy to support C and Objective-C structs. (#2176)--version --verbose now prints clang version (#2140).--allowlist-file option (#2122).#[macro_use] use. (#2176)BINDGEN_EXTRA_CLANG_ARGS is respected on the CLI now (#1723).#[must_use] in typedefs (#2206).Various fixes for C++ crashes / hangs.
Released 2021/11/26
Fixed incorrect bitfield constructors generated for very large bitfields (#2082).
Released 2021/07/26
Support emitting Makefile-syntax depfiles
Released 2021/07/20
Re-introduced unintentionally removed bindgen::Builder::whitelist_recursively (deprecated in favor of bindgen::Builder::allowlist_recursively). [#2022…
Released 2021/04/06
bindgen::Builder::whitelist_recursively (deprecated in favor of
bindgen::Builder::allowlist_recursively). [#2022][]bindgen::Builder::whitelist_type is deprecated in favor of bindgen::Builder::allowlist_type. [#1812][]
Released 2021/04/03
bindgen::Builder::whitelist_type is deprecated in favor of
bindgen::Builder::allowlist_type. [#1812][]
bindgen::Builder::whitelist_function is deprecated in favor of
bindgen::Builder::allowlist_function. [#1812][]
bindgen::Builder::whitelist_var is deprecated in favor of
bindgen::Builder::allowlist_var. [#1812][]
--whitelist-type is deprecated in favor of
--allowlist-type. [#1812][]
--whitelist-function is deprecated in favor of
--allowlist-function. [#1812][]
--whitelist-var is deprecated in favor of
--allowlist-var. [#1812][]
bindgen::Builder::blacklist_type is deprecated in favor of
bindgen::Builder::blocklist_type. [#1812][]
bindgen::Builder::blacklist_function is deprecated in favor of
bindgen::Builder::blocklist_function. [#1812][]
bindgen::Builder::blacklist_item is deprecated in favor of
bindgen::Builder::blocklist_item. [#1812][]
--blacklist-type is deprecated in favor of
--blocklist-type. [#1812][]
--blacklist-function is deprecated in favor of
--blocklist-function. [#1812][]
--blacklist-item is deprecated in favor of
--blocklist-item. [#1812][]
Expose module-raw-lines to the CLI
Released 2021/02/01
Objective-c bindings generate From for ParentClass as well as TryFrom for ChildClass ([#1883][]).
Released 2020/11/26
From<ChildClass> for ParentClass as well as TryFrom<ParentClass> for ChildClass (#1883).dynamic_library_name (#1846).Default on a per-struct basis (#1930).Fixed a regression where anonymous enums referenced by members or such won't generate valid Rust code. (#1882).
Released 2020/08/24.
Support for libclang 3.8 has been removed (#1830).
Released 2020/08/23.
Added options to avoid deriving the Debug trait (#1858).
Added options to allow to override the default anonymous field prefix (#1859).
Added options to allow to override the default macro integer type from the command line (#1863).
Typed anonymous enums now generate better code (#1850).
Objective-C bindings are more idiomatic now (#1847).
Updated to clang-sys 1.0. Minimum supported rust version is 1.40 as a consequence of that change.
Fixed constness of multi-dimensional arrays in some cases (#1861).
Fixed wrong target given to clang when compiling with a target which doesn't match the target clang expects (#1870, #1878).
Fixed wrong flags being computed for cross-compilation cases where the target wasn't explicitly provided via clang flags (#1872).
Thanks again to all the awesome contributors that sent patches included in this release!
Yanked: The change in #1798 is technically breaking, see PR for details.
Released 2020/07/06.
Yanked: The change in #1798 is technically breaking, see PR for details.
Added ParseCallbacks::func_macro to be able to process function-like macros. (#1792).
Allowed IntKind::Custom to represent paths instead of idents (#1800).
Generated comment now includes the bindgen version, and can be disabled (#1814).
Various documentation improvements.
Typedefs for types with the same names as rust primitive types compiles (#1798).
Bindgen dependencies will now get rebuilt when various environment variables that affect bindgen change (#1809, #1813).
Various fixes to command_line_flags (#1816, #1819, #1821).
Functions that start with operator now get properly generated (#1817).
Thanks to all the awesome contributors that sent patches included in this release!
New command line flag to allow disabling untagged unions (#1789).
Released 2020/05/21.
__stdcall (#1781).*Note: This release contains the same fixes and additions as 0.54.0, but without the Objective-C breaking changes*
Released 2020/05/21.
Note: This release contains the same fixes and additions as 0.54.0, but without the Objective-C breaking changes
__stdcall (#1781).clang-sys and cexpr have been updated (#1741 and #1744).
Released 2020/03/10.
Opt-in to convert size_t to usize again (#1720).
Released 2020/02/03.
Support for wasm_import_module. (#1691).
Released 2020/02/02.
Added newtype enum style, much like bitfield but without the bitwise ops (#1677).
Released 2019/11/19.
newtype enum style, much like bitfield but without the bitwise ops
(#1677).MaybeUninit rather than mem::uninitialized() (#1666).default-features = false, you probably want to use the "runtime" feature
to get the same behavior as before.regex unicode
features).#[must_use] support for libclang 9+ (#1646).BitfieldUnit constructor to handle 64 bit wide bitfields on 32 bit (#1640).ParseCallbacks handler for included files. (#1637).Mismatched Ord and PartialOrd implementations were fixed, which regresses bindgen in funny ways when using rustc nightly. Dot releases for a few of th
Released 2019/09/23.
Ord and PartialOrd implementations were fixed, which regresses
bindgen in funny ways when using rustc nightly. Dot releases for a few of the
previous versions of bindgen will be created with this fix. Also,
a v0.51.1-oldsyn version was uploaded without the syn update. #1627Syn and related dependencies have been updated. #1611
Switches added to allow less dependencies. In
particular: It won't pull failure and related dependencies by default, and
there's a default-on which-rustfmt feature which allows to get rid of
which altogether. #1615 / #1625
fxhash dependency was switched to rustc-hash. #1626
Nothing published for this version
Refactored the way layout of wchar_t is computed. This is a breaking change since IntKind::WChar (exposed in ParseCallbacks) no longer needs a size me…
Released 2019/07/26.
Improve workaround for LLVM stack overflow when evaluating value-dependent expressions. #1591
Bindgen will properly detect the layout of incomplete arrays. #1592
Bindgen will properly detect the layout of empty unions and forward declarations of unions. #1593 and #1595. Thanks @pmarks!
wchar_t is computed. This is a breaking change
since IntKind::WChar (exposed in ParseCallbacks) no longer needs a size
member. #1596RUSTFMT in the environment to try to find a suitable
rustfmt binary. #1602Nothing published for this version
Fixed pointers to Objective C blocks [#1582][].
Released 2019/07/01.
Nothing published for this version
Various bindgen auto-generated types are now constructible in const fn contexts [#1571][]
Bindgen now has an option to generate array arguments as pointer to the array, not to the element (so void foo(int arr[2]) would be generated as arr:
Released 2019/05/22
void foo(int arr[2]) would be generated as
arr: *mut [c_int; 2] rather than arr: *mut c_int. Thanks @elichai!
#1564.Bindgen will not emit #[link_name] attributes in win32 and macos for C functions and constants where it can detect it's not needed (thanks @michaelwoe
Released 2019/05/16
#[link_name] attributes in win32 and macos for
C functions and constants where it can detect it's not needed (thanks
@michaelwoerister!). #1558hashbrown internally, and will use fxhash
and std::HashMap. This is equivalent for newer rustcs since hashbrown
was merged in libstd, and the performance difference should be close to zero
for older rustcs.BINDGEN_EXTRA_CLANG_ARGS environment variable was added (thanks @jhwgh1968!). [#1537][]
Released 2019/03/27
--target is
specified. The detect_include_paths option can be used to opt-out of this
behavior.Bindgen will properly lay out types that use reference members. [#1531][]
Default rust target was changed to 1.33, which means that bindgen can get much more often the layout of structs right. [#1529][]
Backported BINDGEN_EXTRA_CLANG_ARGS support per request (#1910).
Released 2020/11/13
Allowed to build with which 1.0.
Released 2019/02/25
@flowbish fixed code generation for nested function prototypes. [#1508][]
Released 2019/02/22
@luser improved the error message when rustfmt cannot be found [#1501][]
[#537]: https://github.com/rust-lang/rust-bindgen/issues/537
Released 2019/01/19
#pragma pack(n) is now translated to #[repr(C, packed(n))] when targeting Rust 1.33+. #537#[repr(transparent)] instead of #[repr(C)] when targeting Rust 1.28+. #1474#[repr(packed)] is now properly added if the struct only contains a vtable.
#1495clang-sys should now more accurately find libclang versions when multiple
of them are available. #1489Your coding agent can read these notes before it upgrades. Set up the MCP server →