Viper
Viper is a free, open-source language and tool suite for building program verifiers and prototyping verification techniques.
What Viper is
Viper is a free, open-source language and tool suite for building program verifiers and prototyping verification techniques. It targets sequential and concurrent programs with mutable state, using permissions or ownership reasoning. The language provides imperative constructs, specifications, mathematical types, user-defined predicates, and pure functions. Two backends are available: verification-condition generation and symbolic execution, both using the Z3 SMT solver. Front-end verifiers include Gobra for Go, Nagini for Python, and Prusti for Rust. Viper IDE runs as a Visual Studio Code extension and requires 64-bit Java 11 or newer; it downloads about 100 MB of dependencies. Command-line tools are offered for 64-bit Windows, Linux, macOS, and ARM macOS. An interactive browser tutorial provides editable, runnable examples. Core projects are open source on GitHub, with support through the Viper Zulip channel and Stack Overflow. Deployment is self-hosted, and the project is based in Zürich, Switzerland.
Good
- Free and open source
- Supports sequential and concurrent programs
- Two Z3-based verification backends
- Front ends for Go, Python, and Rust
- Interactive browser tutorial
Watch out
- Requires 64-bit Java 11 or newer for IDE
- IDE downloads approximately 100 MB of dependencies
- Self-hosted deployment required
- VS Code is recommended for the IDE
Who it suits
Viper suits developers and researchers building verification tools, prototypes, or manually encoded verification problems. It is relevant when contract specifications, permission reasoning, and Go, Python, Rust, or Viper-language inputs fit the work.
Verdict
Viper offers a focused, extensible environment for contract-based program verification with multiple language entry points. Its free self-hosted model suits technical users comfortable managing tools and verification workflows themselves.
The facts
Each one read from Viper's own pages, with the date it was checked.
Where it runs
- Browser learning
- The Viper tutorial provides runnable examples that readers can edit and try in the browser.checked 8 Oct 2026
- Browser tutorial
- The interactive tutorial includes runnable examples that users can edit and verify in the browser.checked 8 Oct 2026
- Command line platforms
- The maker offers command-line tool downloads for 64-bit Windows, Linux, macOS, and ARM macOS.checked 8 Oct 2026
What it does
- Front ends
- The project lists Gobra for Go, Nagini for Python, and Prusti for Rust as verifiers built on Viper.checked 8 Oct 2026
- IDE
- Viper IDE is a Visual Studio Code extension, and the maker recommends using it with the latest VS Code version.checked 8 Oct 2026
- IDE requirement
- Viper IDE requires 64-bit Java 11 or newer and downloads approximately 100 MB of dependencies.checked 8 Oct 2026
- Intended users
- Viper is used to develop verification tools and prototypes, and the maker also describes manual encoding of verification problems as a use case.checked 8 Oct 2026
- Language features
- The Viper language includes imperative constructs, specifications, permission reasoning, mathematical types, user-defined predicates, and pure functions.checked 8 Oct 2026
- Permission reasoning
- Viper natively supports permission or ownership reasoning, including approaches such as separation logic.checked 8 Oct 2026
- Program reasoning
- Viper is designed to verify sequential and concurrent programs with mutable state using permissions or ownership.checked 8 Oct 2026
- Purpose
- Viper is a language and suite of tools for building program verifiers and prototyping verification techniques.checked 8 Oct 2026
- Security and compliance
- The opened project and download pages do not state a security certification or compliance standard.checked 8 Oct 2026
- SMT solver
- Both backends use the Z3 SMT solver to discharge proof obligations.checked 8 Oct 2026
- Source code
- The maker says the source code for Viper's core projects is open source and available on GitHub.checked 8 Oct 2026
- Support
- The maker directs users to the Viper Zulip channel and Stack Overflow for support.checked 8 Oct 2026
- System requirement
- Viper IDE requires 64-bit Java 11 or newer and recommends the latest available VS Code version.checked 8 Oct 2026
- Verification backends
- Viper provides a verification-condition-generation backend and a symbolic-execution backend, both of which use the Z3 SMT solver.checked 8 Oct 2026
The company
- Headquarters
- Zürich, Switzerlandchecked 28 Sep 2026



