minimize-rust-ffi-crate-surface について
Rust FFI crate またはファイルが公開する C シンボルを絞り込むスキルです。シンボルの使用状況を分析して未使用の定義を削除し、C/C++ の単体テストだけで使われるシンボルの扱いを提案します。
主な機能
- 01公開された FFI シンボルの使用状況を分析
- 02未使用の Rust 定義を削除
- 03C/C++ テストだけで使われるシンボルを特定
- 04テスト専用シンボルの扱いを整理
活用シーン
- 01FFI crate の未使用シンボルを削減
- 02Rust FFI ファイルの公開シンボルを確認
- 03C/C++ テストが依存するシンボルの扱いを検討
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ redisearch/ redisearch --skill minimize-rust-ffi-crate-surfaceインストール後、Claude Code で/minimize-rust-ffi-crate-surfaceを入力して読み込まれたか確認します。
詳細
Rust FFI クレートの公開範囲を縮小する
Rust FFI クレートまたはファイルで定義されている C シンボルのうち、未使用のもの、または C/C++ の単体テストでのみ使用されているものを削除します。
引数
<path>:Rust クレートまたはファイルへのパス。<path 1> <path 2>:複数の Rust クレートまたはファイル。
パスが src/ で始まらない場合は、src/redisearch_rs/c_entrypoint ディレクトリ内にあるものとします。たとえば、numeric_range_tree_ffi は src/redisearch_rs/numeric_range_tree_ffi になります。
パスがディレクトリを指している場合は、そのディレクトリにあるすべての Rust ファイルのドキュメントを確認します。
手順
- analyze-rust-ffi-crate-surface を使用して、Rust クレートまたはファイルが公開するすべての FFI シンボル(例:
#[unsafe(no_mangle)]が付与されたextern "C" fnや型定義)を列挙し、その使用状況を分析します。 - 未使用のシンボルごとに、次の操作を行います。
- Rust の定義を削除します。
- C/C++ の単体テストを実行し(
./build.sh RUN_UNIT_TESTS)、そのシンボルが本当に未使用であることを確認します。
- C/C++ の単体テストでのみ使用されているシンボルごとに、次のいずれかの計画を詳しく説明します。
- C/C++ の単体テストをリファクタリングして、そのシンボルを使用しないようにします。
- そのシンボルに依存する C/C++ の単体テスト(またはアサーション)を削除します。これらは Rust クレートの実装詳細を調べているためです。
- シンボルを残し、Rust のドキュメントで「テスト専用」と明記します。
コメント
Markdown 対応