Skip to content

FStarLang/FStar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5209704 · Jan 17, 2025
Dec 13, 2024
Apr 29, 2024
Dec 13, 2024
Jan 7, 2025
Jan 17, 2025
Jan 27, 2017
Jan 7, 2025
Jan 17, 2025
Jan 15, 2025
Jan 15, 2025
Jan 15, 2025
Jan 7, 2025
Jan 17, 2025
Jan 17, 2025
Jan 15, 2025
Jan 12, 2025
Jan 12, 2025
Jan 15, 2025
Jan 17, 2025
Mar 7, 2023
Jan 12, 2025
Feb 15, 2018
Jan 7, 2025
Mar 18, 2021
Dec 3, 2024
Mar 30, 2022
Jan 7, 2025
Dec 13, 2024
Jan 27, 2017
Jan 27, 2017
Jan 12, 2025
Mar 4, 2023
Aug 29, 2023
Jan 8, 2025
Jan 9, 2025
Jan 17, 2025

Repository files navigation

F*: A Proof-oriented Programming Language

F* website

More information on F* can be found at www.fstar-lang.org

Installation

See INSTALL.md

Online book

An online book Proof-oriented Programming In F* is in the works and regular updates are posted online. The book is available as a PDF, or you can read it while trying out examples and exercises in your browser interface from this tutorial page.

Wiki

The F* wiki contains additional technical documentation on F*, and is especially useful for topics that are not yet covered by the book.

Editing F* code

You can edit F* code using various text editor. Emacs has the best support currently, providing syntax highlighting, code completion and navigation, and interactive development, using fstar-mode.el. However, other editors also have limited support. More details on editor support are available on the F* wiki.

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 shallowly embedded DSL can be extracted to C or WASM by the KaRaMeL tool, and code written in an ASM-like deeply embedded DSL can be extracted to ASM by the Vale tool.

Chatting about F* on Slack and Zulip

The F* developers and many users interact on this Slack forum---you should be able to join automatically by clicking here, but if that doesn't work, please contact the mailing list mentioned below.

Users can also chat about F* or ask questions at this Zulip forum.

Mailing list

We also have a mailing list which we use mainly for announcements.

Reporting issues

Please report issues using the F* issue tracker on GitHub. Before filing please 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.

Contributing

See CONTRIBUTING.md

License

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