Claude Code で Rust 開発|Clippy 連携と CLAUDE.md 設定

Claude Code で Rust 開発|Clippy 連携と CLAUDE.md 設定

「Claude に Rust を書かせると、所有権エラーで止まってしまう」——そんな悩みを持つ開発者は少なくありません。Rust は借用チェッカーと厳格な型システムを持つため、AI コーディングの中でも難度が高い言語です。一方で、Opus 4.8 世代のコーディング能力は実用域に達し、設定次第で Rust 開発の強力な相棒になります。本記事では、Claude Code で Rust を書くときの環境設定・CLAUDE.md の書き方・品質ゲートの組み方を、実例とともに解説します。

結論powered by Claude
「Claude に Rust を書かせると、所有権エラーで止まってしまう」——そんな悩みを持つ開発者は少なくありません。Rust は借用チェッカーと厳格な型システムを持つため、AI コーディングの中でも難度が高い言語です。一方で、Opus 4.8 世代のコーディング能力は実用域に達し、設定次第で Rust 開発の強力な相棒になります。本記事では、Claude Code で Rust を書くときの環境設定・CLAUDE.md の書き方・品質ゲートの組み方を、実例とともに解説しま
目次 (8)

なぜ今 Claude Code × Rust が注目されるのか

Anthropic は Opus 4.8 を「コーディング・自律的タスク・専門業務にわたるアップグレード」と位置づけています(Anthropic 公式)。実際、エージェント型のコーディング評価である SWE-Bench Pro では、実在の GitHub Issue を読み込み複数ファイルを横断してユニットテストを通す課題で、Opus 4.8 は 69.2% を記録し、前世代 Opus 4.7 の 64.3% から改善しました(labellerr の検証)。

Rust に直結する事例としては、Bun の開発者 Jarred Sumner が Bun のコードベースを Zig から Rust へ移植した取り組みが知られています。75 万行規模を、初コミットからマージまで 11 日、テスト合格率 99.8% で完了したと報告されています(digitalapplied のまとめ)。大規模な Rust 移植が現実的な選択肢になりつつあることを示す象徴的な数字です。

Claude Code が得意な Rust タスク・苦手なタスク

万能ではない点を先に押さえておきましょう。実際に Claude で Rust を書いた開発者の観察によれば、Rust は「厳密な正しさ」を要求するため、小さなミスでもコンパイルが通らず、AI 支援ワークフローを遅くする側面があります(Sam Van Overmeire の記事)。

  • 得意:パフォーマンスが重要なシステム、低レベルプログラミング、メモリ管理が厳しい領域。仕様が明確で、テストで正誤を機械判定できるタスク。
  • 苦手・要注意:言語仕様をまだ理解していない人が「とにかく速く動かす」目的で使うケース。Rust は精密な道具であり、ラピッドプロトタイピング用途では他言語のほうが速いこともあります。

つまり Claude Code は「Rust を理解している人の手数を増やす」使い方で最も効きます。

環境構築:cargo と Claude Code を連携する

導入は次の順で進めます。

  1. Rust ツールチェーンを rustup で導入し、cargo --version で動作確認する。
  2. エディタに rust-analyzer を入れ、型情報とエラーがリアルタイムで出る状態にする。
  3. プロジェクト直下で Claude Code を起動し、cargo build が通る初期状態を作ってから依頼を始める。
  4. Cargo.toml の依存と最小構成を Claude に読ませ、現状を把握させてからタスクを渡す。

最初にビルドが通る土台を用意しておくと、Claude が変更の前後でコンパイル結果を比較でき、修正の精度が上がります。

CLAUDE.md に Rust の規約を書く

最も効果が大きいのが、プロジェクトの規約・命名・設計判断を CLAUDE.md に明文化することです。AI はここに書かれたルールに従います(rust-coding-standards スキル)。Rust 向けに書いておきたい項目は次のとおりです。

  • ネストを浅く保つための早期リターン(early return)を優先する。
  • 所有権・借用・参照の扱いを明示し、不要な clone() を避ける。
  • エラー処理は anyhowthiserror を使い分け、構造化したエラー型を返す。
  • プリミティブ型より型安全を優先し、不正な状態を表現できない API を設計する(Builder・Newtype・#[must_use] の活用)。
  • Clippy のすべての lint を有効化し、警告ゼロをコミット条件にする。

これらを箇条書きで残しておくと、Claude の初稿から手戻りが大きく減ります。

品質ゲート:fmt / clippy / test を毎回回す

Claude が自分の出力を検証できるよう、変更ごとに 3 つのコマンドを必ず実行する運用にします(Tigran.tech の解説)。

  1. cargo fmt で整形し、差分を体裁の問題で汚さない。
  2. cargo clippy -- -W clippy::all(あるいはより厳格な設定)で lint を回す。
  3. cargo test でユニットテストを通す。

Clippy はあえて厳しめに設定するのがコツです。フィードバックが多いほど、Claude はそれを手がかりに自己修正の質を高められます。人間がレビューする前に、機械が検証できる状態を作っておくことが重要です。

所有権・借用エラーを直させるコツ

借用チェッカーのエラーで止まったときは、エラーメッセージ全文を Claude に貼り、「どのライフタイムが衝突しているか」を言語化させてから修正案を出させます。曖昧に「直して」と頼むより、コンパイラの指摘を根拠に推論させたほうが、的外れな clone() 連発を避けられます。複数ファイルにまたがる修正でも、テストが通る範囲を小さく区切って進めると安定します。

ビルド高速化:sccache と mold

Rust はコンパイルが重く、AI と人間が何度も回す開発ではビルド時間がボトルネックになります。コンパイルキャッシュの sccache とリンカの mold を導入すると、反復のたびの待ち時間を大きく削減できます(rust-development-workflow スキル)。Claude に変更と検証を任せる回数が増えるほど、この差は効いてきます。

まとめ

Claude Code で Rust を書く鍵は、モデル任せにせず「機械が正誤を判定できる環境」を整えることです。

  • CLAUDE.md に所有権・エラー処理・型安全の規約を明文化する。
  • cargo fmt / clippy / test を変更ごとに回し、自己検証させる。
  • 借用エラーはメッセージ全文を根拠に推論させ、小さく区切って直す。

Rust は「速く雑に書く」言語ではありませんが、規約と品質ゲートを固めれば、Opus 4.8 世代の Claude は厳格な型システムを持つ Rust でも実戦的なパートナーになります。

参考になったら ♡
Clauder Navi 編集部
@clauder_navi

Anthropic の Claude / Claude Code を中心に、日本のエンジニア向けに最新動向と実務 を毎日発信。 運営方針 は メディアについて をご覧ください。