Rustプログラミング言語のメインソースリポジトリ。コンパイラ、標準ライブラリ、ドキュメントを収録しています。
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
Verus PlaygroundでブラウザーからVerusを試す
- 2
ローカル環境を完全にセットアップするには、INSTALL.mdのインストール手順に従う
- 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 の数値は毎日更新されます。
関連プロジェクト
OWL/RDFオントロジーの変更を計画・適用・証明するRustエンジン。影響範囲レポートと、検証可能なLean 4の導出結論証明を提供します。
依存ライブラリ不要で高速にコンパイルでき、CからVへの自動変換にも対応する、保守しやすいソフトウェア向けのシンプルなコンパイル言語。
コードを書く前に提案・仕様・タスクを合意する、AIコーディングアシスタント向けの仕様駆動開発ワークフロー。
AIエージェントが必要に応じて読み込む、指示・スクリプト・リソースをSKILL.mdフォルダにまとめるためのオープンな形式と仕様。
AIアプリケーションを外部ツールやデータに接続するオープン標準、Model Context Protocol(MCP)の仕様、TypeScriptおよびJSON Schemaの定義、公式ドキュメントを提供します。