EVERYTHING XIAOMI
Get listed

Viper

Viper is a free, open-source language and tool suite for building program verifiers and prototyping verification techniques.

Place
#29 of 34
Score
5.7
Viper's website

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

Alternatives to Viper

All alternatives
  1. 1Lean logo

    Lean

    Free planWebLinuxmacOSWindows
    6.9Free plan
  2. 2Rocq logo

    Rocq

    Free planWebExtensionLinuxmacOS
    6.9Free plan
  3. 3cvc5 logo

    cvc5

    Free planWebAPILinuxmacOS
    6.8Free plan
  4. 4

    Why3

    Free planWebAPILinuxSelf-hosted
    6.8Free plan
  5. 5

    PVS

    Free planLinuxmacOSWindows
    6.6Free plan
  6. 6

    Z3

    Free planAndroidWebAPILinux
    6.6Free plan