TL;DR

依存関係のフィーチャを管理するための、TUI 風の Cargo 拡張ツール。

仕組み

次のコマンドでインストールする。

cargo install cargo-features-manager

プロジェクトのルートで cargo features を実行すると、依存関係ごとに使えるフィーチャの一覧が表示され、キー操作で有効・無効を切り替えられる。変更はそのまま Cargo.toml に反映される。-d <依存関係の名前> を付けると、その依存関係のフィーチャの画面を直接開く。

cargo features prune を実行すると、コンパイルに不要なフィーチャをすべて削除する。

注意点

README によると、コンパイルが通っても実際には必要なフィーチャがあり、Known-Features.toml に載ったものは prune でも残される。残したいフィーチャは Cargo.toml の cargo-features-manager.keep(ワークスペース全体なら workspace.cargo-features-manager.keep)に書いておける。--dry-run を付けると、Cargo.toml を書き換えずに結果だけを確かめられる。--skip-tests を付けるとテストのコンパイルを省いて速くなるが、テストでだけ使うフィーチャが消えることがある。

関連

出典