😍
Rust開発時の便利ツールたち
前書き
Rustを書くときに便利なツールをまとめた記事が無い気がしたので作成。(ちゃんと探してないので既にあるかも)
公式ツール
-
cargoパッケージマネージャ- 基本だけどとても便利なツール
- 一度はThe Cargo Bookを読んでおくことを推奨。
-
rustfmtフォーマッター-
cargo fmtでもフォーマットの修正が出来る。(こっちを使うことが多い)
-
-
clippylintツール- こう書いたほうが良いよという提案もしてくれるので便利。
-
cargo clippy --fixを使うと自動で直してくれる。
-
rust-analyzerLanguage Server-
rlsもあるが、(最近は?)rust-analyzerの方がメジャーな気がする。 - 追記 : RLSは非推奨になりました。RLS Deprecation
-
非公式ツール
-
cargo-watchソースコードの変更を検知して自動でcargo checkなどを走らせてくれるツール-
cargo watch -x fmt -x clippy -x testみたいに複数のことを実行できるので便利。
-
-
cargo-editCargo.tomlに依存を追加するときに便利なツール-
Cargo.toml開いて1行追加するだけなのにわざわざコマンド要る? と思っていたのですが、自動で最新バージョンを入れてくれるので便利。 - 地味に面倒なfeaturesの追加も
--featuresで出来るので便利 - 追記:1.62より
cargo addが公式に採用されました。
-
-
cargo-expandマクロを展開してくれるツール -
cargo-show-asm指定した関数のアセンブリを表示してくれるツール- アセンブリを見ながら最適化したいときに便利。
-
cargo-valgrindvalgrind上でcargo runしてくれるツール- FFI周りなどメモリリークが起きやすいときには便利。
-
cargo-scriptRustをスクリプト言語のように扱えるツール- 1行目に
#!/usr/bin/env run-cargo-scriptと書いて実行権限付与しておくとスクリプト言語っぽく実行できる。 - Rustでちょっとしたツールの作成をしたいときに便利。
- 1行目に
-
git-delta見やすいdiff- これに関しては他の言語を書くときも便利。
-
cargo-outdated古いクレートを使っていないか確認してくれるツール- 自分で依存クレートのバージョンを逐一調べるのは面倒なので便利。
-
cargo-audit使っているクレートに脆弱性があるか調べてくれるツール -
cargo-build-deps依存クレートのみビルドしてくれるツール- Dockerfileでキャッシュを活かして時間を短縮できるので便利。
-
cargo-bisect-rustcrustcのどのコミットでICEなどが起きるようになったか調査するツール- ダウンロードすれば済む場合はrustcのコンパイルをしないでくれる
後書き
個人的に使っていて便利なツールを挙げました。ここに載っていないもので便利なツールがありましたらコメントで教えてもらえると幸いです。また公式非公式の分類が間違っていたら教えて下さい。
ChangeLog
- 2025/4/29
cargo-asmからcargo-show-asmに変更 - 2021/10/1 リンクを追加
- 2021/10/2 fix typo
- 2021/10/28 add cargo-build-deps
- 2021/12/24 cargo-playからcargo-scriptに変更
- 2022/1/29 cargo-editの
--featuresについて追記 - 2022/2/21 add cargo-bisect-rustc
- 2022/2/23 rust-analyzerを公式に移動
- 2022/7/2 Rust 1.62より
cargo addが公式に入った旨を追記 - 2022/7/2 Tier分けをやめた
- 2022/7/2 RLSの非推奨化について追記
- ソース : RLS Deprecation
- 2022/7/2 cargo-auditを追加
Discussion
rust-analyzer は Mozilla もいちおう開発に加わっているのでオフィシャルだと思ってます。