安全ではないRustを少し安全にする:安全ではないコード、CおよびC++ライブラリを含む検証ツール

2024-12-17

Rustの人気は、コンパイル時にメモリと並行性のエラーを排除できることに由来しますが、その`unsafe`コードブロックはこれらのチェックを回避する可能性があります。この記事では、CまたはC++ライブラリから呼び出されるコードを含む、安全ではないRustコードを検証するためのツールを探ります。実行時エラー検出ツールであるサニタイザと、未定義の動作を決定的に検出するインタープリターであるMiriを紹介します。サニタイザは、範囲外のメモリへのアクセス、データ競合などを検出し、Miriはコードスニペットを使用してより正確なエラーレポートを提供します。ただし、Miriは現在、C/C++からFFIを介して呼び出されるコードをサポートしていないため、そのような場合はC/C++コンパイラのサニタイザを使用する必要があります。これらのツールは、`unsafe`コードを処理する場合やC/C++ライブラリと対話する場合でも、Rustコードの安全性和信頼性を向上させます。