#closures #libffi #c

sys libffi-sys

libffi 的原生 Rust 绑定

41 个版本 (15 个稳定版)

2.3.0 2023年4月26日
2.2.0 2023年3月28日
2.0.1 2022年10月20日
2.0.0 2022年3月7日
0.4.4 2016年6月21日

#148FFI

Download history 12409/week @ 2024-03-15 11399/week @ 2024-03-22 12086/week @ 2024-03-29 11095/week @ 2024-04-05 12022/week @ 2024-04-12 12753/week @ 2024-04-19 11497/week @ 2024-04-26 11694/week @ 2024-05-03 11529/week @ 2024-05-10 11613/week @ 2024-05-17 10903/week @ 2024-05-24 10816/week @ 2024-05-31 10973/week @ 2024-06-07 10410/week @ 2024-06-14 10855/week @ 2024-06-21 6180/week @ 2024-06-28

40,320 每月下载量
用于 49 个 crate(5 个直接使用)

MIT/Apache

3MB
69K SLoC

C 35K SLoC // 0.2% comments GNU Style Assembly 14K SLoC // 0.2% comments M4 9K SLoC // 0.2% comments Shell 9K SLoC // 0.2% comments Rust 1K SLoC // 0.1% comments Bitbake 436 SLoC // 0.1% comments Automake 258 SLoC // 0.1% comments Python 247 SLoC Perl 171 SLoC // 0.4% comments C++ 128 SLoC // 0.1% comments Visual Studio Project 126 SLoC // 0.0% comments Visual Studio Solution 33 SLoC

包含 (autotools 加密代码,715KB) libffi/configure,(模糊 autoconf 代码,15KB) libffi/configure.ac

libffi-sys-rs:libffi 的底层 Rust 绑定

GitHub Workflow Status Documentation Crates.io License: MIT License: Apache 2.0

C 语言 libffi 库提供了两个主要功能:动态汇编函数调用和创建可以像普通 C 函数一样调用的闭包。这是一个由 bindgen 生成的非文档化包装器,用作更高级绑定的基础。

如果你克隆此存储库以构建库并且你不打算启用 system Cargo 功能以针对系统中的 C libffi 构建,那么你应该进行递归克隆,默认情况下,此库从 Git 子模块构建 C libffi。

有关更高级 API,请参阅 libffi crate

使用方法

libffi-sys 可以从 github 构建自己的 libffi C 库副本,或者它可以链接到系统中的 C libffi。默认情况下,它构建自己的副本,因为许多系统都带有旧的 C libffi;这需要您首先拥有一个正常工作的 make、C 编译器、automake 和 autoconf。如果您的系统 libffi 足够新(截至 2019 年 10 月为 v3.2.1),则可以启用 system 功能标志来使用它。如果您希望此 crate 为您构建 C libffi,请将以下内容添加到您的 Cargo.toml 中:

[dependencies]
libffi-sys = "2.3.0"

如果要在 Cargo.toml 中使用您的系统 C libffi,则

[dependencies.libffi-sys]
version = "2.3.0"
features = ["system"]

此 crate 支持 Rust 版本 1.32 及更高版本。

依赖关系