Dafny
dafny.org
Spec sheet
- What it does
- Dafny is a verification-aware programming language with native support for recording specifications and a static program verifier that checks code against them.Read 5 Oct 2026 · dafny.org
- Purpose
- It helps developers write code that can be verified against specifications to reduce the risk of late-stage bugs.Read 5 Oct 2026 · dafny.org
- Product
- Dafny is a verification-aware programming language with native specification support and a static program verifier.Read 5 Oct 2026 · dafny.org
- Intended users
- The project describes Dafny as used in academia for teaching and research and in industry, including by teams at Amazon.Read 5 Oct 2026 · dafny.org
- Audience
- Dafny is used in academia for teaching and research and in industry, including by teams at Amazon.Read 5 Oct 2026 · dafny.org
- Platforms
- Installation instructions cover Windows, Linux, and macOS; the project repository also lists binary downloads for FreeBSD.Read 5 Oct 2026 · dafny.org
- Support
- The project homepage directs users to a Zulip channel to ask questions about Dafny.Read 5 Oct 2026 · dafny.org
- License
- The Dafny software is licensed under the MIT License.Read 5 Oct 2026 · github.com
- Compilation targets
- Dafny compiles code to C#, Java, JavaScript, Go, and Python, with more targets in development.Read 5 Oct 2026 · dafny.org
- Dependencies
- The Dafny tool is a .NET 8.0 artifact, and the Z3 tool is required to use Dafny for verification.Read 5 Oct 2026 · dafny.org
- Desktop support
- The installation guide lists Windows, Linux, and macOS binary builds and tests Dafny on supported operating system versions.Read 5 Oct 2026 · dafny.org
- IDE integrations
- The Dafny ecosystem includes a Visual Studio Code extension powered by a Language Server Protocol implementation, plus a code formatter.Read 5 Oct 2026 · dafny.org
- Known target limits
- The installation guide describes Rust support as partial and growing and C++ support as rudimentary and special-purpose.Read 5 Oct 2026 · dafny.org
- Language features
- The language supports classes, iterators, arrays, tuples, generic and subset types, inductive datatypes, lambdas, and mutable and immutable data structures.Read 5 Oct 2026 · dafny.org
- Learning resources
- The Dafny documentation links to a getting-started tutorial, reference manual, FAQs, error explanations, verification optimization guide, style guide, and examples.Read 5 Oct 2026 · dafny.org
- Other editor integration
- The installation guide describes using Dafny with Emacs as well as Visual Studio Code.Read 5 Oct 2026 · dafny.org
- Proof features
- Its proof toolbox includes quantifiers, calculational proofs, lemmas, preconditions, postconditions, termination conditions, loop invariants, and read/write specifications.Read 5 Oct 2026 · dafny.org
- Requirements
- The Dafny tool is a .NET 8.0 artifact, and Dafny plus its bundled Z3 tool are sufficient for verification; compiling and running generated programs may require additional tools.Read 5 Oct 2026 · dafny.org
- Security reporting
- The project asks people who discover a potential security issue to notify its security contact instead of creating a public GitHub issue.Read 5 Oct 2026 · github.com
- Target requirements
- Compiling generated code requires tools for the selected target language, such as .NET for C#, Node.js for JavaScript, and Go tools for Go.Read 5 Oct 2026 · dafny.org
- Tooling
- The Dafny ecosystem includes compilers, IDE plugins, a language server, a code formatter, a reference manual, and tutorials.Read 5 Oct 2026 · dafny.org
- VS Code
- The VS Code extension supports compiling and running .dfy files, verification while typing, syntax highlighting, verification traces, IntelliSense, go to definition, and hover information.Read 5 Oct 2026 · marketplace.visualstudio.com
- VS Code features
- The VS Code extension supports verification while typing, compiling and running .dfy files, syntax highlighting, verification traces, IntelliSense, go to definition, and hover information.Read 5 Oct 2026 · marketplace.visualstudio.com
Where Specifiction places it
- Formal Verification Tools#16 of 357.8