Repolode
verus-lang

verus-lang/verus

A tool for formally verifying Rust code, checking specifications against all possible executions instead of adding run-time checks.

Stars
3,374
Forks
239
Open issues
393
Last commit
6 hours ago

What is it?

Verus lets developers write specifications describing what their Rust code should do, then statically checks that the executable code satisfies them for all possible executions. Instead of inserting run-time assertions, it relies on automated solvers to prove correctness ahead of time.

Verus supports a subset of Rust and can reason about code beyond the standard type system, such as code that manipulates raw pointers. It is aimed at low-level systems code where correctness guarantees matter.

The project is under active development, so some features may be incomplete or broken. It ships with a tutorial, standard library API docs (vstd), a browser playground, and an auto-formatter called verusfmt.

Key features

  • 01Specifications are written alongside Rust code and checked statically.
  • 02Proofs are discharged by automated solvers, with no run-time checks added.
  • 03Supports reasoning about low-level code such as raw pointer manipulation.
  • 04Provides a standard library (vstd) with verified-friendly APIs.
  • 05Includes an online playground and a VS Code integration.

Use cases

  • Verifying correctness of low-level systems code written in Rust.
  • Proving properties of data structures or algorithms that must never violate invariants.
  • Researching formal verification techniques for Rust programs.

Quick start

  1. 1

    Try Verus in your browser at the Verus Playground

  2. 2

    Follow the installation instructions in INSTALL.md for a full local setup

  3. 3

    Work through the Tutorial and reference guide

Things to know

  • Verus is under active development, so features may be broken or missing.
  • It supports only a subset of Rust.
  • The documentation is still incomplete, and help is mainly through Zulip.

Topics

FAQ

What is verus?
A tool for formally verifying Rust code, checking specifications against all possible executions instead of adding run-time checks. Verus lets developers write specifications describing what their Rust code should do, then statically checks that the executable code satisfies them for all possible executions. Instead of inserting run-time assertions, it relies on automated solvers to prove correctness ahead of time.
Is verus free to use? What license does it have?
verus is open source under the MIT license. Check the license terms before using it in commercial products.
Is verus still maintained?
Actively maintained. The last commit to verus was on Oct 22, 2026.
What can I use verus for?
Verifying correctness of low-level systems code written in Rust. Proving properties of data structures or algorithms that must never violate invariants. Researching formal verification techniques for Rust programs.
How do I install verus?
Try Verus in your browser at the Verus Playground Follow the installation instructions in INSTALL.md for a full local setup Work through the Tutorial and reference guide
Where can I get verus?
The source code and installation instructions are on GitHub: https://github.com/verus-lang/verus

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects