F*: An ML-like language aimed at program verification
More information on F* can be found at www.fstar-lang.org
The F* tutorial provides a first taste of verified programming in F*, explaining things by example.
The F* wiki contains additional, usually more in-depth, technical documentation on F*.
Editing F* code
You can edit F* code using your favourite text editor, but Emacs, Atom, and Vim have extensions that add special support for F*, including syntax highlighting and interactive development. More details on editor support on the F* wiki.
Executing F* code
By default F* only verifies the input code, it does not compile or execute it.
To execute F* code one needs to translate it to either OCaml or F#, using
F*'s code extraction facility---this is invoked using the command line
--codegen OCaml or
--codegen FSharp. More details on
executing F* code on the F* wiki.
Community mailing list
The fstar-club mailing list is dedicated to F* users. Here is where all F* announcements are made to the general public (e.g. for releases, new papers, etc) and where users can ask questions, ask for help, discuss, provide feedback, announce jobs requiring at least 10 years of F* experience, etc.
Public Slack channel on functionalprogramming
Users can also ask questions on the public
#fstar Slack channel
functionalprogramming. You can get an invite at:
Archives are available at:
Please report issues using the F* issue tracker on GitHub.
Before filing please use search to make sure the issue doesn't already exist.
We don't maintain old releases, so if possible please use the
online F* editor or directly the GitHub sources to check
that your problem still exists on the
The F* for the masses blog is also expected to become an important source of information and news on the F* project.
This new variant of F* is released under the Apache 2.0 license;
LICENSE for more details.
Towards F* version 1.0
This is a new variant of F* (carrying version 0.9.x) that is still in development and we hope will eventually lead to a 1.0 release. This new variant is incompatible and quite different compared to the previously released 0.7 versions and earlier.
Old F* versions (v0.7.1 and earlier)
F* v0.7.1 and earlier are no longer maintained, so please do not create any issues here about those versions.