VeriFast
VeriFast is a free, MIT-licensed research prototype for modular formal verification of C, Rust and Java programs.
What VeriFast is
VeriFast is a free, MIT-licensed research prototype for modular formal verification of C, Rust and Java programs. Developers annotate code with preconditions and postconditions in separation logic, and can add inductive datatypes, primitive recursive pure functions and abstract separation logic predicates. Proofs can be written as lemma functions; VeriFast checks that these terminate and have no side effects. The project describes verification time as predictable and low because the verifier and its SMT solver need little search. It provides 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 at highlighted source locations, but it needs a separate VeriFast installation and a configured path to the command-line tool. The project provides nightly binaries and named releases, with build instructions for Windows, Linux and macOS. VeriFast is self-hosted. Its documentation and Rust reference are under construction, and informal community chat is available in its Zulip chatroom.
Good
- Free and MIT-licensed
- Supports C, Rust and Java
- Offers desktop, command-line and VS Code interfaces
- Checks termination and side effects of lemma functions
Watch out
- Research prototype
- VS Code extension requires a separate installation
- Documentation and Rust reference are under construction
Who it suits
It suits developers and researchers working on formal verification of C, Rust or Java programs. The VS Code extension may help users who want verification results in that editor and can install the separate tool.
Verdict
VeriFast offers several ways to check separation-logic specifications for three programming languages at no cost. Its prototype status and unfinished documentation are important considerations for adoption.
Plans and prices
From VeriFast's own pricing page, checked 11 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Free and open source | Free | MIT-licensed source code and binaries · research prototype |
The facts
Each one read from VeriFast's own pages, with the date it was checked.
What it does
- Documentation status
- The VeriFast Docs and Rust reference are described as under construction.checked 11 Oct 2026
- Downloads
- The project provides automatically built nightly binaries and named releases.checked 11 Oct 2026
- Extension requirement
- The VS Code extension requires a separate VeriFast installation and a configured path to its command-line tool.checked 11 Oct 2026
- Interfaces
- The available interfaces are a desktop IDE, a command-line tool, and a Visual Studio Code extension.checked 11 Oct 2026
- License
- The source code and binaries are released under the MIT License.checked 11 Oct 2026
- Proofs
- Users can write lemma functions as proofs, and VeriFast checks that these functions terminate and have no side effects.checked 11 Oct 2026
- Purpose
- VeriFast is a research prototype for modular formal verification of C, Rust, and Java programs.checked 11 Oct 2026
- Rich specifications
- Users can define inductive datatypes, primitive recursive pure functions, and abstract separation logic predicates.checked 11 Oct 2026
- Specifications
- Programs can be annotated with preconditions and postconditions written in separation logic.checked 11 Oct 2026
- Supply chain
- The project says its CI workflow creates GitHub Artifact Attestations for binary packages.checked 11 Oct 2026
- Support
- The maintainer and community can be reached for informal chat in the VeriFast Zulip chatroom.checked 11 Oct 2026
- Supported desktop systems
- The repository links build instructions for Windows, Linux, and macOS.checked 11 Oct 2026
- Verification speed
- The project says verification time is predictable and low because VeriFast and its SMT solver need little search.checked 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.checked 11 Oct 2026
The company
- Headquarters
- Leuven, Belgiumchecked 28 Sep 2026



