Repolode
verus-lang

verus-lang/verus

実行時チェックを追加する代わりに、あらゆる実行を対象に仕様を検証するRustコード向けの形式検証ツール。

スター
3,374
フォーク
239
未解決の Issue
393
最終コミット
4 時間前

これは何?

Verusでは、Rustコードがどのように動作すべきかを仕様として記述し、実行可能なコードがあらゆる実行でその仕様を満たすことを静的に検証できます。実行時アサーションを挿入するのではなく、自動ソルバーを使って事前に正しさを証明します。

VerusはRustのサブセットをサポートし、標準の型システムを超えたコードの推論も可能です。たとえば、raw pointerを操作するコードも対象にできます。正しさの保証が重要となる、低レイヤーのシステムコードを主な対象としています。

このプロジェクトは活発に開発されているため、一部の機能は未完成、または正常に動作しない場合があります。チュートリアル、標準ライブラリのAPIドキュメント(vstd)、ブラウザー上のプレイグラウンド、自動フォーマッターのverusfmtが用意されています。

主な機能

  • 01Rustコードと並べて仕様を記述し、静的に検証できます。
  • 02自動ソルバーが証明を完了するため、実行時チェックは追加されません。
  • 03raw pointerの操作など、低レイヤーのコードについて推論できます。
  • 04検証に適したAPIを備えた標準ライブラリ(vstd)を提供します。
  • 05オンラインプレイグラウンドとVS Code連携が含まれています。

ユースケース

  • Rustで書かれた低レイヤーのシステムコードの正しさを検証する。
  • 不変条件に違反してはならないデータ構造やアルゴリズムの性質を証明する。
  • Rustプログラム向けの形式検証手法を研究する。

クイックスタート

  1. 1

    Verus PlaygroundでブラウザーからVerusを試す

  2. 2

    ローカル環境を完全にセットアップするには、INSTALL.mdのインストール手順に従う

  3. 3

    チュートリアルとリファレンスガイドに沿って学習する

使う前に知っておきたいこと

  • Verusは活発に開発されているため、機能が動作しなかったり、まだ実装されていなかったりする場合があります。
  • サポートしているのはRustの一部のみです。
  • ドキュメントはまだ不完全で、主なサポート窓口はZulipです。

トピック

よくある質問

verus とは?
実行時チェックを追加する代わりに、あらゆる実行を対象に仕様を検証するRustコード向けの形式検証ツール。 Verusでは、Rustコードがどのように動作すべきかを仕様として記述し、実行可能なコードがあらゆる実行でその仕様を満たすことを静的に検証できます。実行時アサーションを挿入するのではなく、自動ソルバーを使って事前に正しさを証明します。
verus は無料で使えますか?ライセンスは?
verus は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
verus は今もメンテナンスされていますか?
活発にメンテナンス中。verus の最終コミットは 2026年10月22日 です。
verus は何に使えますか?
Rustで書かれた低レイヤーのシステムコードの正しさを検証する。 不変条件に違反してはならないデータ構造やアルゴリズムの性質を証明する。 Rustプログラム向けの形式検証手法を研究する。
verus のインストール方法は?
Verus PlaygroundでブラウザーからVerusを試す ローカル環境を完全にセットアップするには、INSTALL.mdのインストール手順に従う チュートリアルとリファレンスガイドに沿って学習する
verus はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/verus-lang/verus

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト