Path to this page:
./
devel/rust-bindgen,
Automatically generate Rust FFI bindings to C (and some C++) libraries
Branch: CURRENT,
Version: 0.71.1,
Package name: rust-bindgen-0.71.1,
Maintainer: nikitaBindgen automatically generates Rust FFI bindings to C (and some C++)
libraries.
It produces Rust FFI code allowing you to call into the C or C++
library's functions and use its types.
Master sites:
Version history: (Expand)
- (2025-01-17) Updated to version: rust-bindgen-0.71.1
- (2024-02-29) Updated to version: rust-bindgen-0.69.4
- (2023-11-12) Updated to version: rust-bindgen-0.69.1
- (2023-02-27) Package added to pkgsrc.se, version rust-bindgen-0.64.0 (created)
CVS history: (Expand)
2025-01-17 10:59:08 by pin | Files touched by this commit (3) | |
Log message:
devel/rust-bindgen: update to 0.71.1
v0.71.1 (2024-12-09)
Fixed
Fix --version and --generate-shell-completions (#3040)
0.71.0 (2024-12-06)
Added
Add the ParseCallbacks::new_item_found callback to expose the original and \
final name of structs, unions and enums (#2658).
Add the field_type_name field to FieldInfo to expose the name of the type of \
a field (#2863)
Add support for custom attributes with the --with-attribute-custom flag (#2866)
Allow setting --rust-target to any Rust version supported by bindgen (#2993)
Use c-string literals if the --generate-cstr flag is used for Rust targets \
after 1.77 under the 2021 edition (#2996)
Add the --rust-edition flag which allows to select which Rust edition to \
target. (#3002, #3013)
Use unsafe extern instead of extern in blocks for any Rust target after \
1.82. (#3015)
Changed
The --wrap-static-fns related options no longer require the experimental \
feature or flag (#2928)
Use the Display implementation instead of the Debug one for BindgenError in \
bindgen-cli (#3005)
Removed
Dropped support for any Clang versions strictly lower than 9.0 (#2932)
Dropped support for any Rust version strictly lower than 1.33 (#2993)
Fixed
Represent opaque types in a FFI-safe way (#2880)
Use the underlying type of any atomic type instead of panicking (#2920)
Use the right characters for newlines on windows (#2923)
Inlined namespaces are properly recognized now (#2950)
Unsafe calls to libloading are now wrapped in unsafe blocks when using dynamic lo
ading (#2961)
The ParseCallbacks::field_visibility callback is now called for newtypes as \
well (#2967)
Gate the use of the addr_of and addr_of_mut macros under the 1.51 rust \
version (#2988)
0.70.1 (2024-08-20)
Fixed
Fix regression where the const layout tests were triggering the \
unnecessary_operation and identity_op clippy warnings.
0.70.0 (2024-08-16)
Added
Add target mappings for riscv64imac and riscv32imafc.
Add a complex macro fallback API (#2779).
Add option to use DST structs for flexible arrays (--flexarray-dst, #2772).
Add option to dynamically load variables (#2812).
Add option in CLI to use rustified non-exhaustive enums \
(--rustified-non-exhaustive-enum, #2847).
Add field_type_name to FieldInfo.
Changed
Remove which and lazy-static dependencies (#2809, #2817).
Generate compile-time layout tests (#2787).
Print bindgen-cli errors to stderr instead of stdout (#2840)
Fixed
Fix --formatter=prettyplease not working in bindgen-cli by adding \
prettyplease feature and enabling it by default for bindgen-cli (#2789) .
Fix --allowlist-item so anonymous enums are no longer ignored (#2827).
Use clang_getFileLocation instead of clang_getSpellingLocation to fix \
clang-trunk (#2824).
Fix generated constants: f64::INFINITY, f64::NEG_ INFINITY, f64::NAN (#2854).
Security
Update tempfile and rustix due to GHSA-c827-hfw6-qwvm.
|
2024-02-29 15:23:09 by pin | Files touched by this commit (3) | |
Log message:
devel/rust-bindgen: update to 0.69.4
0.69.4 (2024-02-04)
Changed
- Allow older itertools. (#2745)
0.69.3 (2024-02-04)
Added
- Added blocklist_var (#2731)
- Stabilized thiscall_abi (#2661)
Changed
- Use CR consistently on windows (#2698)
- Replaced peeking_take_while by itertools (#2724)
Removed
Fixed
- Try to avoid repr(packed) for explicitly aligned types when not needed (#2734)
- Improved destructor handling on Windows (#2663)
- Support Float16 (#2667)
- Fix alignment contribution from bitfields (#2680)
- Fixed msrv build.
Security
- Updated shlex dependency (RUSTSEC-2024-0006)
0.69.2 (2024-01-13)
Fixed
- Fixed generation of extern "C" blocks with llvm 18+. See #2689.
|
2023-11-12 18:02:52 by pin | Files touched by this commit (3) | |
Log message:
devel/rust-bindgen: update to 0.69.1
0.69.1 (2023-11-02)
Fixed
- Allow to run bindgen -v without an input header argument.
0.69.0 (2023-11-01)
Added
- Added the ParseCallbacks::header_file callback which runs on every filename
passed to Builder::header.
- Added the CargoCallbacks::new constructor which emits a cargo-rerun line for
every input header file by default.
- Added the CargoCallbacks::rerun_on_header_files method to configure whether
a cargo-rerun line should be emitted for every input header file.
Changed
- The --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.
Fixed
- Allow compiling bindgen-cli with a static libclang.
- Emit an opaque integer type for pointer types that don't have the same size
as the target's pointer size.
- Avoid escaping Objective-C method names unless they are Self, self, crate or
super.
0.68.1
Fixed
- Fixed errors on the windows artifact build process.
0.68.0
Added
- The system ABI is now supported as an option for the --override-abi flag.
- The allowlist_item method and the --allowlist-item flag have been included
to filter items regardless or their kind.
- Include installers as release artifacts on Github.
Changed
- The Clone implementation for _BindgenUnionField has been changed to pass the
incorrect_clone_impl_on_copy_type Clippy lint.
- The 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).
- Formatting changes when using prettyplease as a formatter due to a new
prettyplease version.
- Avoid generating invalid CStr constants when using the --generate-cstr
option.
Removed
- The extra_assert and extra_assert_eq macros are no longer exported.
Fixed
- Bindgen no longer panics when parsing an objective-C header that includes a
Rust keyword that cannot be a raw identifier, such as: self, crate, super
or Self.
0.66.1
Removed
- Revert source order sorting (#2543) due to correctness regressions #2558.
0.66.0
Added
- Added the --generate-cstr CLI flag to generate string constants as &CStr
instead of &[u8]. (Requires Rust 1.59 or higher.)
- Added the --generate-shell-completions CLI flag to generate completions for
different shells.
- The --wrap-static-fns option can now wrap va_list functions as variadic
functions with the experimental ParseCallbacks::wrap_as_variadic_fn method.
- Add target mappings for riscv32imc and riscv32imac.
- Add the ParseCallbacks::field_visibility method to modify field visibility.
Changed
- Non-UTF-8 string constants are now generated as references (&[u8; SIZE])
instead of arrays ([u8; SIZE]) to match UTF-8 strings.
- Wrappers for static functions that return void no longer contain a return
statement and only call the static function instead.
- The --wrap-static-fns option no longer emits wrappers for static variadic
functions.
- Depfiles generated with --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.
- Updated bitflags dependency to 2.2.1. This changes the API of CodegenConfig.
- Prettyplease formatting is gated by an optional, enabled by default Cargo
feature when depending on bindgen as a library.
- Items are now parsed in the order they appear in source files. This may
result in auto-generated _bindgen_* names having a different index.
- Use default visibility for padding fields: Previously, padding fields were
always public. Now, they follow the default visibility for the type they
are in.
- Compute visibility of bitfield unit based on actual field visibility:
A bitfield unit field and its related functions now have their visibility
determined based on the most private between the default visibility and the
actual visibility of the bitfields within the unit.
Removed
- Remove redundant Cargo features, which were all implicit:
- bindgen-cli: env_logger and log removed in favor of logging
- bindgen (lib):
- log removed in favor of logging
- which removed in favor of which-logging
- annotate-snippets removed in favor of experimental
- Prettyplease is available as a Formatter variant now.
0.65.1
Fixed
- The Builder::rustfmt_bindings method was added back and tagged as deprecated
instead of being removed.
- Broken documentation links were fixed.
0.65.0
Added
- Added the Builder::default_visibility method and the --default-visibility
flag to set the default visibility of fields. (#2338)
- Added the --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)
- Added the Builder::formatter method and the Formatter type to select which
tool will be used to format the bindings. (#2453)
- Added the Builder::emit_diagnostics method and the --emit-diagnostics flag to
enable emission of diagnostic messages under the experimental feature.
(#2436)
- Added support for the "efiapi" calling convention (#2490).
- Added the ParseCallbacks::read_env_var method which runs everytime bindgen
reads and environment variable. (#2400)
- Added the ParseCallbacks::generated_link_name_override method which allow
overriding the link name of items. (#2425)
- Add support for C enums when generating code while using
the --wrap-static-fns feature. (#2415)
Changed
- Static functions with no arguments use void as their single argument instead
of having no arguments when the --wrap-static-fns flag is used. (#2443)
- The source file generated when the --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)
- The source file generated when the --wrap-static-fns flag no longer uses asm
labeling and the link name of static wrapper functions is allowed to be
mangled. (#2448)
- The documentation of the generated type aliases now matches the comments of
their typedef counterparts instead of using the comments of the aliased
types. (#2463)
- The Builder::rustfmt_bindings methods and the --no-rustfmt-bindings flag are
now deprecated in favor of the formatter API. (#2453)
Removed
- The following deprecated flags were removed: --use-msvc-mangling,
--rustfmt-bindings and --size_t-is-usize. (#2408)
- The Bindings::emit_warnings and Bindings::warnings methods were removed in
favor of --emit-diagnostics. (#2436)
- Bindgen no longer generates C string constants that cannot be represented
as byte slices. (#2487)
|
2023-02-27 20:43:13 by Nikita | Files touched by this commit (5) |
Log message:
devel/rust-bindgen: import rust-bindgen version 0.64.0
Imported from wip.
Bindgen automatically generates Rust FFI bindings to C (and some C++)
libraries.
It produces Rust FFI code allowing you to call into the C or C++
library's functions and use its types.
|