🔧

Rustで依存クレートを扱う時に便利なツール集

2022/10/10に公開

この記事について

Rustで依存関係にあるクレートを調べたりまとめたりするときに便利なツールの紹介です。
この記事ではインストールと基本的な使い方だけ書いたので、詳しい使い方は当該ツールのヘルプやドキュメントなどを参照してください。

cargo-tree 依存関係をツリーで表示

cargo-treeは依存関係のクレートをツリーで出力するツールです。
1.44.0以降のcargoが使える環境ならインストールなしで使うことができます。

インストール

Cargo 1.44.0から標準で入っているので不要です。

使用

cargo tree

cargo-license 依存関係のライセンス一覧表示

https://github.com/onur/cargo-license

cargo-licenseは依存関係にある全てのクレートのライセンスを一覧で出力するツールです。

インストール

cargo install cargo-license

使用

cargo license

cargo-licenseのプロジェクトディレクトリで使った例

cargo-licenseの例
cargo-licenseのリポジトリより引用

cargo-about 依存関係のライセンスをまとめてHTML化

https://github.com/EmbarkStudios/cargo-about

cargo-aboutは依存関係にある全てのクレートのライセンス情報を1つのHTMLファイルにまとめて出力するツールです。
例えば、実行ファイルだけを配布したいときに便利です。

以下のリンクはcargo-aboutによる出力例です。
https://embarkstudios.github.io/cargo-about/cli/generate/default-example.html

インストール

cargo install --locked cargo-about

使用

# `about.toml`と`about.hbs`を`Cargo.toml`のディレクトリに生成します
cargo about init
# `license.html`にライセンスをまとめてHTMLで出力します
cargo about generate about.hbs > license.html

cargo about generateをした時に次のようなエラーが出ることがあります。

error: failed to satisfy license requirements

このエラーを解消するにはabout.tomlacceptedにエラーが出たライセンスを追加します。
ただし、acceptedに追加しようとするライセンスが問題なく使えるものかどうかを確認してください。

Discussion