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‑固有のメトリックを表示できません。
次のステップ: