mcpField
M
minimize-rust-ffi-crate-surface

minimize-rust-ffi-crate-surface

github.com/redisearch开发6.2k54 次安装今天更新
代码仓库

关于 minimize-rust-ffi-crate-surface

用于缩减 Rust FFI crate 或文件所暴露 C 符号的 Skill。它分析符号用途、删除未使用定义,并为仅由 C/C++ 单元测试使用的符号提出处理方案。

主要功能

  1. 01分析已暴露 FFI 符号的用途
  2. 02删除未使用的 Rust 定义
  3. 03识别仅用于 C/C++ 测试的符号
  4. 04规划仅供测试使用符号的处理方式

适用场景

  1. 01精简 FFI crate 中未使用的符号
  2. 02检查 Rust FFI 文件暴露的符号
  3. 03规划 C/C++ 测试依赖符号的处理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/redisearch/redisearch --skill minimize-rust-ffi-crate-surface

安装后在 Claude Code 中输入/minimize-rust-ffi-crate-surface确认已加载。

详细介绍

最小化 Rust FFI Crate 的接口表面

移除 Rust FFI crate 或文件中定义的 C 符号:这些符号要么未使用,要么仅用于 C/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 文件的文档。

说明

  • 使用 analyze-rust-ffi-crate-surface 枚举并分析 Rust crate 或文件所暴露的所有 FFI 符号的使用情况(例如,带有 #[unsafe(no_mangle)] 注解的 extern "C" fn 或类型定义)。
  • 对于每个未使用的符号:
    • 删除其 Rust 定义。
    • 运行 C/C++ 单元测试,确认该符号确实未被使用(通过 ./build.sh RUN_UNIT_TESTS)。
  • 对于仅在 C/C++ 单元测试中使用的每个符号,制定计划,以便:
    • 重构 C/C++ 单元测试,使其不再使用该符号。
    • 移除依赖该符号的 C/C++ 单元测试(或断言),因为这些测试深入探查了 Rust crate 的实现细节。
    • 保留该符号,但在 Rust 文档中将其标记为“仅用于测试”。

评论

支持 Markdown