Freedom251 › Formal Verification Tools
F*

What F* is
F* is a free, open-source programming language for functional and effectful code, designed around proving program properties. Its type system combines dependent types with automated proof support based on SMT solving, as well as interactive theorem proving with tactics. F* programs compile to OCaml by default. With KaRaMeL or Vale, selected fragments can also be extracted to F#, C, WebAssembly, or assembly. The language is implemented in F* and bootstrapped with OCaml, and it is distributed under the Apache 2.0 license.
F* runs on Windows, Linux, and macOS, and can be installed from binaries, through OPAM, Docker, or Nix, or by building from source. The project provides an online book, browser examples and exercises, and a Low* tutorial for a low-level subset that can compile to C through KaRaMeL. For community help, it points users to GitHub Discussions and a public Zulip forum, and also lists a mailing list and maintainer contact email.
F* is used in security-focused development: Project Everest develops secure communication software with it, and HACL* provides cryptographic primitives written in F* and extracted to C. The project reports that code from HACL*, ValeCrypt, and EverCrypt appears in production projects including Firefox, the Linux kernel, Python, mbedTLS, and WireGuard.
Who it suits
F* suits programmers who need a proof-oriented language for functional or effectful programming and can work with theorem proving and SMT-based automation. Its installation options and learning materials support both local development and self-hosted use; its security projects also make it relevant to people working on high-assurance software.
What it does well
- Free and open source under Apache 2.0.
- Combines dependent types with SMT and tactic-based proof.
- Compiles to OCaml by default.
- Supports extraction to F#, C, WebAssembly, or assembly.
- Offers binaries and several installation routes.
- Includes an online book, examples, exercises, and a tutorial.
What to know first
- The language is focused on proof-oriented programming.
- Some output targets require KaRaMeL or Vale.
- Installation from source is an available route.
Limits
The free F* plan provides the language and listed installation options. Programs compile to OCaml by default; extraction to F#, C, WebAssembly, or assembly uses KaRaMeL or Vale.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| F* | Apache 2.0 licensed · binaries for Windows, Linux, and Mac OS X · install via OPAM, Docker, or Nix, or build from source | Free |
As fstar-lang.org lists them, read 11 Oct 2026. The maker's own page has the final word.
Getting started
- Choose Windows, Linux, or macOS as your platform.
- Install a binary, use OPAM, Docker, or Nix, or build from source.
- Start with the online book or browser examples and exercises.
- Use the Low* tutorial if you want to explore its low-level subset and C compilation through KaRaMeL.
- Ask questions through GitHub Discussions or the public Zulip forum.
Verdict
Pick F* if your work calls for a proof-oriented language with both automated and interactive theorem proving, or for code that can be extracted to several targets. Consider whether its proof-focused approach fits your project and whether you want to install binaries, use a package-based route, or build from source.
Questions
Is F* free?
Yes. It is open source under the Apache 2.0 license.
Which platforms does F* support?
The listed platforms are Linux, macOS, self-hosted, and Windows. Binaries are offered for Windows, Linux, and Mac OS X.
How can I install F*?
You can use its binaries, install through OPAM, Docker, or Nix, or build from source.
What languages can F* compile or extract to?
F* programs compile to OCaml by default. Fragments can also be extracted to F#, C, WebAssembly, or assembly using KaRaMeL or Vale.
What learning materials are available?
The project links to an online book, browser examples and exercises, and a tutorial for Low*, a low-level subset that can compile to C through KaRaMeL.
Where can users ask for help?
The project points to GitHub Discussions and a public Zulip forum. It also lists a low-traffic mailing list and a maintainer contact email.
Facts from F*'s own pages
- Community support
- The project directs questions to GitHub Discussions and a public Zulip forum, and lists a low-traffic mailing list and maintainer contact email. · fstar-lang.org, 11 Oct 2026
- Compilation
- F* programs compile by default to OCaml, and fragments can also be extracted to F#, C, WebAssembly, or assembly using KaRaMeL or Vale. · fstar-lang.org, 11 Oct 2026
- Core team
- The listed core development team includes contributors affiliated with Microsoft Research in Redmond and Bangalore. · fstar-lang.org, 11 Oct 2026
- Development
- F* is open source on GitHub and is under active development by Microsoft Research, Inria, and the community. · fstar-lang.org, 11 Oct 2026
- Implementation
- F* is implemented in F* and bootstrapped using OCaml. · fstar-lang.org, 11 Oct 2026
- Installation
- The project offers binaries for Windows, Linux, and Mac OS X, and installation through OPAM, Docker, Nix, or source builds. · fstar-lang.org, 11 Oct 2026
- Learning
- The site links to an online book, browser examples and exercises, and a tutorial for Low*, a low-level subset that can compile to C through KaRaMeL. · fstar-lang.org, 11 Oct 2026
- License
- F* is distributed under the Apache 2.0 license. · fstar-lang.org, 11 Oct 2026
- Parser tooling
- EverParse generates C code from formally proven F* and is used in production, including in Windows Hyper-V. · fstar-lang.org, 11 Oct 2026
- Production use
- The site says code from HACL*, ValeCrypt, and EverCrypt is used in production projects including Firefox, the Linux kernel, Python, mbedTLS, and WireGuard. · fstar-lang.org, 11 Oct 2026
- Proof system
- It combines dependent types with proof automation based on SMT solving and tactic-based interactive theorem proving. · fstar-lang.org, 11 Oct 2026
- Purpose
- F* is a general-purpose proof-oriented programming language for purely functional and effectful programming. · fstar-lang.org, 11 Oct 2026
- Security use
- Project Everest develops high-assurance secure communication software in F*, and HACL* provides high-assurance cryptographic primitives written in F* and extracted to C. · fstar-lang.org, 11 Oct 2026
Where F* stands on Freedom251
- Formal Verification Tools#6 of 34
