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 シンボルを絞り込むスキルです。シンボルの使用状況を分析して未使用の定義を削除し、C/C++ の単体テストだけで使われるシンボルの扱いを提案します。

主な機能

  1. 01公開された FFI シンボルの使用状況を分析
  2. 02未使用の Rust 定義を削除
  3. 03C/C++ テストだけで使われるシンボルを特定
  4. 04テスト専用シンボルの扱いを整理

活用シーン

  1. 01FFI crate の未使用シンボルを削減
  2. 02Rust FFI ファイルの公開シンボルを確認
  3. 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 のドキュメントで「テスト専用」と明記します。

コメント