关于 analyze-rust-ffi-crate-surface
用于梳理 Rust FFI crate 或文件暴露给 C 的符号,并追踪它们在 C 代码库中的使用。报告包含符号名称、类型、使用模块,以及是否仅用于测试。
主要功能
- 01列出对 C 可见的 FFI 符号
- 02查找符号在 C 模块中的用途
- 03识别仅用于测试的符号
- 04可参考自动生成的头文件
适用场景
- 01审查 FFI crate 暴露的接口
- 02追踪 Rust 符号在 C 模块中的使用
- 03确认符号是否仅在测试中使用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ redisearch/ redisearch --skill analyze-rust-ffi-crate-surface安装后在 Claude Code 中输入/analyze-rust-ffi-crate-surface确认已加载。
详细介绍
分析 Rust FFI Crate 的接口
列出给定 Rust FFI crate 或文件中定义的所有 C 可见符号(例如,使用 #[unsafe(no_mangle)] 标注的 extern "C" fn 或类型定义)。
然后确定 C 代码库中哪些部分使用了这些符号。
参数
<path>:Rust crate 或文件的路径。<path 1> <path 2>:多个 Rust crate/文件。
如果路径不是以 src/ 开头,则假定路径位于 src/redisearch_rs/c_entrypoint 目录中。例如,numeric_range_tree_ffi 对应 src/redisearch_rs/numeric_range_tree_ffi。
如果路径指向一个目录,则查看该目录中所有 Rust 文件的文档。
说明
- 阅读相关 Rust 源文件。
- 列出其公开的所有 FFI 符号(例如,使用
#[unsafe(no_mangle)]标注的extern "C" fn或类型定义)。 如果有帮助,可以使用src/redisearch_rs/headers中对应的自动生成头文件。 - 对于每个符号,确定 C 代码库中哪些模块使用了它:
- 对于函数,在 C 代码库中查找对该函数的调用。
- 对于类型,检查其是否用作函数参数、字段类型或类型转换。
- 输出一份报告,列出每个符号的以下信息:
- 符号名称。
- 使用该符号的 C 代码库模块。
- 符号的类型(函数、类型等)。
- 如果该符号仅用于 C/C++ 单元测试(即位于
tests/下),请注明。
自动生成的头文件
每个 *_ffi Rust crate 都有一个对应的自动生成头文件,位于 src/redisearch_rs/headers,由 build.rs 脚本通过 cbindgen 创建。
自动生成的头文件包含 Rust crate 定义的所有 FFI 符号,无论这些符号定义在哪个子模块中。
评论
支持 Markdown