Freedom251 › Formal Verification Tools
VeriFast

What VeriFast is
VeriFast is a free, MIT-licensed research prototype for modular formal verification of C, Rust, and Java programs. It checks annotations expressing preconditions and postconditions in separation logic. Specifications can also use inductive datatypes, primitive recursive pure functions, and abstract separation logic predicates. Developers can write lemma functions as proofs; VeriFast checks that they terminate and have no side effects. The project describes verification time as predictable and low because the verifier and its SMT solver require little search. It offers a desktop IDE, command-line tool, and Visual Studio Code extension. The extension can verify the active C, Java, or Rust file and show symbolic execution failures with highlighted source locations. It requires a separate VeriFast installation and a configured path to the command-line tool. Nightly binaries and named releases are available, with build instructions for Windows, Linux, and macOS. The project says its CI workflow creates GitHub Artifact Attestations for binary packages. The VeriFast Docs and Rust reference are under construction, and informal community chat is available through its Zulip chatroom.
Who it suits
VeriFast suits developers working with C, Rust, or Java who want to verify annotated programs. It is intended for users comfortable with a research prototype and, for the VS Code extension, a separate installation and configuration.
What it does well
- Supports C, Rust, and Java verification.
- Offers a desktop IDE, command-line tool, and VS Code extension.
- MIT-licensed source code and binaries are free.
- Provides nightly binaries and named releases.
What to know first
- VS Code extension requires a separate VeriFast installation.
- Documentation and the Rust reference are under construction.
Limits
The VS Code extension requires a separate VeriFast installation and a configured path to its command-line tool. The VeriFast Docs and Rust reference are under construction.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Free and open source | MIT-licensed source code and binaries · research prototype | Free |
As github.com lists them, read 11 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the VeriFast GitHub project.
- Download a nightly binary or named release, or follow the build instructions for Windows, Linux, or macOS.
- Install VeriFast locally for self-hosted use.
- Choose the desktop IDE or command-line tool, or install the VS Code extension.
- If using the extension, configure its path to the VeriFast command-line tool.
Verdict
VeriFast offers several ways to check separation-logic specifications across three programming languages. Its prototype status and unfinished documentation are relevant considerations for adoption.
Questions
How much does VeriFast cost?
VeriFast is free and open source. Its source code and binaries are released under the MIT License.
Which programming languages does it verify?
VeriFast supports programs written in C, Rust, and Java.
Which interfaces are available?
VeriFast has a desktop IDE, a command-line tool, and a Visual Studio Code extension.
Does the VS Code extension need anything else?
Yes. It requires a separate VeriFast installation and a configured path to the command-line tool.
Can I run VeriFast on my operating system?
The project links build instructions for Windows, Linux, and macOS, and provides nightly binaries and named releases.
Is VeriFast open source?
Yes. The source code and binaries are released under the MIT License.
Facts from VeriFast's own pages
- Documentation status
- The VeriFast Docs and Rust reference are described as under construction. · github.com, 11 Oct 2026
- Downloads
- The project provides automatically built nightly binaries and named releases. · github.com, 11 Oct 2026
- Extension requirement
- The VS Code extension requires a separate VeriFast installation and a configured path to its command-line tool. · marketplace.visualstudio.com, 11 Oct 2026
- Headquarters
- Leuven, Belgium · github.com, 28 Sept 2026
- Interfaces
- The available interfaces are a desktop IDE, a command-line tool, and a Visual Studio Code extension. · github.com, 11 Oct 2026
- License
- The source code and binaries are released under the MIT License. · github.com, 11 Oct 2026
- Proofs
- Users can write lemma functions as proofs, and VeriFast checks that these functions terminate and have no side effects. · github.com, 11 Oct 2026
- Purpose
- VeriFast is a research prototype for modular formal verification of C, Rust, and Java programs. · github.com, 11 Oct 2026
- Rich specifications
- Users can define inductive datatypes, primitive recursive pure functions, and abstract separation logic predicates. · github.com, 11 Oct 2026
- Specifications
- Programs can be annotated with preconditions and postconditions written in separation logic. · github.com, 11 Oct 2026
- Supply chain
- The project says its CI workflow creates GitHub Artifact Attestations for binary packages. · github.com, 11 Oct 2026
- Support
- The maintainer and community can be reached for informal chat in the VeriFast Zulip chatroom. · github.com, 11 Oct 2026
- Supported desktop systems
- The repository links build instructions for Windows, Linux, and macOS. · github.com, 11 Oct 2026
- Verification speed
- The project says verification time is predictable and low because VeriFast and its SMT solver need little search. · github.com, 11 Oct 2026
- VS Code integration
- The extension can verify the active C, Java, or Rust file and display symbolic execution failures and highlighted source locations. · marketplace.visualstudio.com, 11 Oct 2026
Where VeriFast stands on Freedom251
- Formal Verification Tools#23 of 34