Rust 統合ビルド解析を実行する

Klocwork 2026.1 では、Rust の部分的なサポートが導入され、最新のメモリセーフなコードベースを解析する機能が拡張されました。Rust 解析は、kwrust というアドオンパッケージで提供されます。‑

Rust プロジェクトはデフォルトで Validate にアップロードすることができます。ただし、アドオンの kwrust‑をインストールできるのはバージョン 2026.1 以降の Klocwork ビルドツールまたはコマンドラインインストールのみであり、既存の Validate サーバーにはインストールできません。

Klocwork では、Rust プロジェクト用に以下の 2 つの補助的なチェッカーセットが提供されています。

  • ネイティブ Rust チェッカー

    これらのチェッカーは、Klocwork によって開発およびメンテナンスされており、当社の C/C++ およびその他の言語チェッカーと同じ解析エンジンを使用しています。コンパイルされたクレートで実行され、指摘が報告されるようにするには、事前にプロジェクトが正常にビルドされている必要があります。詳細については、「Rust チェッカーリファレンス」を参照してください。

  • Clippy ベースのチェッカー

    また、Klocwork は、Rust プロジェクトコントリビューターによってメンテナンスされている Rust の公式リンターである Clippy も統合します。Clippy は外部ツールであるため、Klocwork は、命名パターン RS.CLIPPY.<LINT_NAME_IN_UPPERCASE> に従って、それぞれの Clippy リントを独自のチェッカーにマッピングします。詳細については、「Clippy ベースのチェッカー」を参照してください。

前提条件

Rust のサポートを有効にする前に、必ず、以下の作業を行ってください。

  • Klocwork ビルドツールまたはコマンドラインツール (バージョン 2026.1 以降) をインストールします。

  • ご使用のプラットフォーム (Linux または Windows) に対応する kwrust アドオンをダウンロードします。‑

  • カスタマイズした config/kwfilter.conf ファイルをバックアップします。

    アドオンをインストールすると、既存の config/kwfilter.conf が、Rust コンパイラマッピングを有効にするバージョンで上書きされます。‑このファイルをカスタマイズした場合は、パッケージをビルドまたはコマンドラインツールに抽出する前にバックアップしてください。

制限事項

  • Rust サポートは、現時点では実験的機能です。当社の解析エンジンによって検出される結果は、今後改善される予定です。

  • Rust のサポートはまだ実験的なものであるため、Rust 解析の評価が完了したら、(kwrust アドオンを使用しない) 標準ビルドツールインストールに戻すことをお勧めします。‑あるいは、すべての Rust チェッカーと Clippy チェッカーを Validate で、または pconf ファイルを使用して無効にすることができます。これは、Rust 解析以外の通常のワークフローが最大限に安定したものとなるようにするのに役立ちます。
  • 現在、Klocwork では、パッケージ化された Rust コンパイラを使用して、プロジェクトがその場で (つまり、同じ出力ディレクトリに) 再コンパイルされます。つまり、解析によってプロジェクトのビルドアーティファクトの一部が上書きされるということです。この問題を回避するには、「拡張構成を実行する」を参照してください。

  • ネイティブ Rust チェッカー (Clippy 以外) では、エラーなしのコンパイルが必須です。クレートのコンパイルに失敗した場合、Klocwork は Clippy の結果のみを報告します。

  • 増分解析モードと差分解析モードは完全には検証されていません。最善の結果を得るには、完全解析モードを使用してください。

    kwinject --overwrite <…>
    kwbuildproject --force <…>
    kwcheck run --rebuild
    kwciagent run --rebuild
  • kwrust アドオンには Rust コンパイラバージョン 1.89 が含まれています。理想的には、プロジェクトは cargo +1.89 build を使用して構築しなければなりません。他のコンパイラバージョンでも機能する場合がありますが、機能することは保証されません。

  • クロス言語解析 (Rust による外部 C 関数の呼び出しなど) は、まだサポートされていません。

  • 将来のバージョンでは、元のビルド出力が変更されないようになる予定です。

  • Rust ファイル数、コード行数、コメント数などのメトリックはまだ生成されません。したがって、カテゴリ別詳細レポートで Rust‑固有のメトリックを表示できません。

次のステップ: