Skip to content
Verification system for effectful programs
F* F# OCaml C Shell Makefile Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.ci restore Dec 16, 2017
.completion options: disable --n_cores, since it's broken Jun 13, 2019
.docker Fixing Dockerfiles variants shipping emacs Jul 18, 2019
.hooks Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
.scripts merging master in Jul 2, 2019
bin merging master in Jul 2, 2019
contrib/CoreCrypto/fst copyright notice on all .fst and .fsti files that lacked them Nov 12, 2018
doc [CI] regenerate hints + ocaml snapshot Oct 12, 2019
examples [CI] regenerate hints + ocaml snapshot Oct 13, 2019
src snap Oct 11, 2019
ucontrib Documented how to satisfy the OpenSSL dependency on Arch Mar 29, 2019
ulib tactics: introduce preprocess_with Oct 11, 2019
.gitattributes Updated contributiosn Nov 12, 2018
.gitignore Addition of hooks in makefiles for benchmarking ulib, examples/micro-… Jun 27, 2019
.gitmodules removing openssl submodule Feb 15, 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
.travis.yml Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017 recording change to directory layout in Sep 26, 2019 [INSTALL, CONTRIBUTING] Move out some advanced instrs Jul 26, 2019 Documented that OCaml 4.08.1 should now work Aug 21, 2019
LICENSE Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
LICENSE-fsharp.txt Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
Makefile Makefile: make `make 1` faster Jul 29, 2019 Mentioned VSCode support in Jul 26, 2019
_tags merging master in Jul 2, 2019 merging master in Jul 2, 2019 [INSTALL, fsharp-development] Modernize instructions May 6, 2019
version.txt merging master in Jul 2, 2019

F*: Verification system for effectful programs

F* website

More information on F* can be found at




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, Visual Studio Code, Atom, and Vim have extensions that add special support for F*, including for instance syntax highlighting, code completion, quick navigation, type hints, and interactive development. More details on editor support on the F* wiki.

You can also edit simple examples directly in your browser by using either the online F* editor that's part of the F* tutorial or our new even cooler online editor (experimental).

Extracting and 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 for instance to 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 via OCaml on the F* wiki.

Also, code written in a C-like shalowly embedded DSL can be extracted to C or WASM by the KreMLin tool, and code written in an ASM-like deeply embedded DSL can be extracted to ASM by the Vale tool.

Chatting about F* on Zulip

Users can chat about F* or ask questions at (Zulip is a good open source alternative to Slack)

Community mailing list

The fstar-club mailing list is where various 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!


The F* for the masses blog is also expected to become an important source of information and news on the F* project.

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.




F* is released under the Apache 2.0 license; for more details see LICENSE

You can’t perform that action at this time.