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