EVERYTHING XIAOMI
Get listed

Stainless

Place
#25 of 34
Score
5.8
Stainless's website

The facts below are what the maker publishes about Stainless, checked and dated. Our editors have not written about it yet.

The facts

Each one read from Stainless's own pages, with the date it was checked.

Where it runs

Browser workflow
The documentation describes running Stainless in GitHub Codespaces, including through a browser.checked 8 Oct 2026

What it does

Contracts
It checks user-provided function preconditions and postconditions.checked 8 Oct 2026
Correctness checks
It can statically verify that a program conforms to a specification and cannot crash at runtime.checked 7 Oct 2026
Counterexamples
When a function does not satisfy its contract, Stainless can return a concrete counterexample.checked 8 Oct 2026
Editor integration
The project page links installation instructions for standalone use, Docker, sbt, and Metals.checked 7 Oct 2026
Installation
Stainless can be installed from a standalone release, through Snap or the Arch User Repository, built from source, or used as an sbt plugin.checked 8 Oct 2026
Installation options
The installation documentation lists standalone releases, Snap, source builds, and an sbt plugin.checked 7 Oct 2026
Intended users
The documentation describes using Stainless within an existing sbt project to check Scala code in enabled modules.checked 8 Oct 2026
Language limits
The language does not provide a default encoding for concurrency with a shared mutable heap.checked 7 Oct 2026
License
The repository states that Stainless is released under the Apache 2.0 license.checked 8 Oct 2026
Limitations
The documentation warns that verification assumes unbounded data types and sufficient stack space, so verified code may still encounter stack or heap overflow at runtime.checked 8 Oct 2026
Purpose
Stainless is a verification framework and tool for a subset of the Scala programming language.checked 8 Oct 2026
Runtime requirement
The installation documentation lists Java 17 JRE as a general requirement.checked 8 Oct 2026
Safety checks
It checks array bounds and whether pattern matches cover all possible cases.checked 8 Oct 2026
Scala subset
Stainless verifies a Pure Scala fragment and also supports certain imperative features by translating them into Pure Scala concepts.checked 7 Oct 2026
Scala support
The current repository README says Stainless supports Scala 3.5.0 and later, and no longer supports the Scala 2 frontend.checked 8 Oct 2026
Solvers
Stainless uses the Inox backend and can use SMT solvers including Z3 and cvc5; Princess is included as a Scala-based fallback solver.checked 8 Oct 2026
Solver support
Stainless relies on Inox and supports SMT solvers including Z3, cvc5, and Princess.checked 7 Oct 2026
Supported Scala version
The repository says the current frontend supports Scala 3.5.0 and later and no longer supports Scala 2.checked 7 Oct 2026
Termination
Stainless attempts to prove termination and lets users specify a decreasing measure when automatic checking does not suffice.checked 8 Oct 2026
Use cases
The project page reports use in proving compression and decompression algorithms, aspects of file systems, distributed algorithms, type systems, balanced trees, and student assignments.checked 7 Oct 2026
Who it is for
The documentation describes Stainless as a tool to help developers build verified Scala software.checked 7 Oct 2026

Alternatives to Stainless

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