Low-level Rust bindings for libffi
The C libffi library provides two main facilities: assembling calls to functions dynamically, and creating closures that can be called as ordinary C functions.
This is an undocumented wrapper, originally generated by bindgen then cleaned up manually, intended as the basis for higher-level bindings, but you can see the C libffi documentation.
See the libffi crate for a higher-level API.
libffi-sys can either build its own copy of the libffi C library from
github or it can link against your
system’s C libffi. By default it builds its own because many systems
ship with an old C libffi; this requires that you have a working make,
C compiler, automake, and autoconf first. If your system libffi
is new enough (v3.2.1 as of October 2019), you can instead enable the
system feature flag to use that. If you want this crate to build
a C libffi for you, add
[dependencies] libffi-sys = "1.1.0"
Cargo.toml. If you want to use your system C libffi, then
[dependencies.libffi-sys] version = "1.1.0" features = ["system"]
This crate supports Rust version 1.32 and later.