10个版本
0.0.12 | 2024年7月30日 |
---|---|
0.0.11 |
|
0.0.9 | 2024年6月19日 |
0.0.7 | 2024年5月13日 |
0.0.4 | 2024年1月12日 |
#97 in FFI
每月716次下载
30KB
803 行
ffi_types
该存储库提供了C-ABI兼容的基本Rust类型,包括box、slice、str以及boxed slice/str。通过仔细遵循说明,这些类型与bindgen/cbindgen兼容,并且拥有值在C++下是安全的。
项目由两部分组成。一个Rust crate,用于rust类型包装器的#[repr(C)]
,以及一个用于C++(或稍后更多)的头文件。
转换旨在实现零成本。
待办事项:链接到文档和示例
CBindgen
使用ffi_types::cbindgen::with_cxx_ffi_types()
为cbindgen::Builder
添加正确的配置。
Bindgen
将提供的头文件阻塞到blocklist_file
。将生成的文件中所有的root::ffi_types::
替换为ffi_types::
。
不是最佳FFI选择
如果您开始一个新项目,请检查cxx是否适合您的需求。
由于ffi_types
的目标是向C++侧暴露Rust类型,您需要访问C++代码库。
ffi_types
只提供类型。没有任何事情是自动的。您仍然需要管理bindgen/cbindgen。
MSVC非常挑剔。ffi_types
限制了MSVC中C前缀类型的便利初始化。这将变得更加不便和不安全。
依赖关系
~0-9MB
~84K SLoC