最小化RustFFICrate表面技能Skill minimize-rust-ffi-crate-surface

这个技能用于最小化Rust FFI crate的暴露接口,通过移除未使用或仅用于C/C++单元测试的符号,优化代码库、减少维护负担并提高安全性。关键词:Rust, FFI, C/C++, 单元测试, 代码清理, 符号删除, 跨语言编程, 测试优化。

测试 0 次安装 0 次浏览 更新于 3/11/2026

name: 最小化Rust FFI Crate表面 description: 移除未使用或仅在C/C++单元测试中使用的Rust定义的C符号。

最小化Rust FFI Crate表面

移除在Rust FFI crate或文件中定义的未使用或仅在C/C++单元测试中使用的C符号。

参数

  • <path>: Rust crate或文件的路径。
  • <path 1> <path 2>: 多个Rust crates/文件。

如果路径不以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文档中标记为“仅测试”。