SonarQubeでのRustサポートの紹介

5 読了時間

Picture of Denis Troller

Denis Troller

Product Manager

TL;DR 概要

  • SonarQubeは現在、Rustの解析をサポートしており、安全性が重要でパフォーマンスが求められるアプリケーションで使用される、最も成長しているシステムプログラミング言語の1つに静的コード品質とセキュリティ検査を提供します。
  • Rustアナライザーは、バグ、コードの臭い、保守性の問題を検出し、Rustの独自の所有権と借用モデルを尊重し、Rustの型システムで安全なパターンに関連する誤検知を避けます。
  • Rustの採用がオペレーティングシステム、組み込みソフトウェア、ウェブインフラストラクチャで増加する中、一貫したコード品質分析を行うことで、チームはRustに惹かれた高い基準を維持できます。
  • チームは、既存のSonarQubeワークフロー内でRustプロジェクトを分析でき、C/C++、Java、JavaScriptと並行してRustをマルチ言語プロジェクトに追加することができ、別のツールは必要ありません。

SonarQubeがRustをサポート!

Rustの人気はしばらくの間上昇傾向にあり、Linuxカーネルに関する議論にも進出しています。多くの人々がRustの採用を検討しており、すでにこの道を歩み始めた人もいます。私たちは、ユーザーのリクエストから、多くのユーザーがRustaceansであることを知っています。これらの理由から、SonarQubeがRust言語のサポートを提供する時が来たと判断しました!

サポート内容

この最初のリリースでは、Rustをツールキットに取り入れ、SonarQubeでプロジェクトをオンボードして、より保守性の高いコードを書く手助けをすることを目指しています。

Rust自体には、多くの機能があり、事実上の標準リンターであるClippyがあり、ほとんどのRustaceansが日常的に使用しています。これはコミュニティによって維持されているRustエコシステムの信頼できる一部です。私たちは、巨人の肩に乗って、SonarQube内で85のClippyルールをファーストパーティールールとして統合することから始めることにしました。これにより、これらのルールを品質プロファイルで管理し、標準に含めたいものを選択できます。

さらに、ルールの説明と問題メッセージを提供し、開発者が検出された問題を理解し修正するために必要な情報を得られるようにします。これにより、開発者は問題について学び、将来的にそれを繰り返さないようにすることができます。

もちろん、コードカバレッジは必須であり、LCOVまたはCobertura形式でカバレッジデータをインポートできます。

最後に、認知的複雑度や循環的複雑度など、慣れ親しんだコードメトリクスを計算し、コードの中で注意が必要な部分を確認できます。

要件

アナライザーはClippyを中心に構築されているため、SonarQube解析を実行するマシンにClippyがインストールされたRustツールチェーンが必要です。

SonarQubeのClippy統合を使用せず、Clippyが生成した問題のリストを直接取り込むこともできます。その場合、SonarQubeはClippyを実行しません。既存のコミュニティプラグインでこれをすでに行っている場合は、このワークフローを維持できます。ただし、SonarQubeのClippy統合を使用せず、Clippyの問題を直接取り込む場合、SonarQubeはそれらの問題を「外部問題」と見なし、SonarQubeの品質プロファイル設定は適用されず、SonarQubeが提供するルールの説明やメッセージも表示されません。

利用可能性

Rustアナライザーは現在、SonarQube Cloudで利用可能です。また、今後のSonarQube Server 2025 Release 3および次回のSonarQube Community Buildのリリースにも含まれる予定です。

現時点では、SonarQube Cloudでの自動解析ではRustはサポートされていないことに注意してください。これは後日対応予定です。

始め方

Rustアナライザーを使用開始するには、解析を実行するマシンにClippyがインストールされていることを確認してください。その後、SonarQubeプロジェクトを設定して、Scanner-CLIを使用してRustコードを解析します。品質プロファイルでルールを管理するか、ファイルからClippyの発見を取り込むことができます。

この新しい追加が、SonarQubeを使用するRust開発者に大きな利益をもたらすと信じています。統合されたコード品質とコードセキュリティのための最高のツールを提供することに尽力しています。さらなる更新をお楽しみに!

まだSonarCloudを使用していない場合は、無料で試してみてください