OCaml F# C Python Makefile Shell Other
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.ci restore fsdoc.sh Dec 16, 2017
.completion removing uses of --verify_module in our makefiles ***NO_CI*** Oct 27, 2017
.docker Update FStar docker image May 17, 2018
.hooks Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
.scripts better names for weeklies (fixed, I hope) May 4, 2018
bin Bump version number to May 18, 2018
contrib/CoreCrypto/fst Added random32 to contrib/../CoreCrypto.fst Mar 13, 2018
doc [CI] regenerate hints + ocaml snapshot May 19, 2018
examples [CI] regenerate hints + ocaml snapshot May 23, 2018
src snap May 22, 2018
ucontrib Backward-fix for Platform.Bytes in ucontrib/.../CoreCrypto Mar 13, 2018
ulib [CI] regenerate hints + ocaml snapshot May 23, 2018
.gitattributes More missing files that trigger spurious orange diff warnings Apr 9, 2018
.gitignore snap Nov 12, 2017
.gitmodules removing openssl submodule Feb 15, 2018
.hacl_version Revert "Test friends' CI" Apr 13, 2018
.ignore Un-ignore some hand-written files Aug 17, 2017
.merlin First attempt at replacing OCaml prettyprinters with a single one May 15, 2018
.mitls_version trying out mitls_version Oct 18, 2017
.travis.yml Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
CHANGES.md some more stuff in CHANGES.md May 16, 2018
INSTALL.md Bump version number to May 18, 2018
LICENSE Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
LICENSE-fsharp.txt Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
Makefile Makefile: add some shortcuts Mar 6, 2018
README.md Revert "a bogus change to README.md to test the CI system" Apr 6, 2018
_tags As discussed May 15, 2018
version.txt Bump version number to May 18, 2018


F*: An ML-like language aimed at program verification

Build status

F* website

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 argument --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.

List archives are public and searchable, but only members can post. Join here!

Public Slack channel on functionalprogramming

Users can also ask questions on the public #fstar Slack channel on functionalprogramming. You can get an invite at: https://fpchat-invite.herokuapp.com/. Archives are available at: https://functionalprogramming.slackarchive.io/fstar/

Reporting issues

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 master branch.


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; see 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.