命令列工具
FStarLang/FStar avatar
FStarLang/FStar

FStar:依賴型別與證明目標、操作入口與使用邊界

此專案圍繞「A Proof-oriented Programming Language. [fstar-mode.el]: Emacs mode for F* [fstar-vscode-assistant]: VS Code plugin for F* More details on [editor support] are available on the [F\* wiki].」建置,聚焦實際場景的開源實作,提供可重用的工具鏈與整合方式。

3,104 個 Star265 個 ForkF*Apache-2.0

秒懂

它是什麼?
A Proof-oriented Programming Language. [fstar-mode.el]: Emacs mode for F* [fstar-vscode-assistant]: VS Code plugin for F* More details on [editor support] are available on the [F\* wiki]. 本文依官方 README 整理 依賴型別與證明目標、F* 編譯與提取、模組、效應與規格、工具鏈與平台條件、文件未承諾的部分、以範例執行 fstar.exe,並標出可用專案命令核對的實際觀察點。
適合誰用?
FStar 適合需求正好落在 README 所列範圍,且能管理 fstar.exe;make test 所需環境的使用者;不適合把未說明的相容性、效能或安全性當成既定事實。先執行專案自己的 fstar.exe;make test,用小型輸入核對輸出、日誌、檔案或交易結果,再決定是否納入正式流程。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 F*(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

FStar:依賴型別與證明目標

F : A Proof-oriented Programming Language ========================================= F\ website More information on F\ can be found at www.fstar-lang.org Installation See [INSTALL.md](https://github.com/FStarLang/FStar/blob/master/INSTALL.md) Online book An online book _Proof-oriented Programming In F _ is available and updates are posted online periodically. 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]. [tutorial page]: https://www.fstar-lang.org/tutorial/ [PDF]: http://fstar-lang.org/tutorial

第 1 節要把 FStar 的 依賴型別與證明目標 對應到 README 寫出的輸入、命令、檔案或設定鍵,觀察它如何影響實際輸出。文檔未說明的效能、相容性與安全承諾維持未知,不把專案描述延伸成保證。這裡的重點是 依賴型別與證明目標,不是重複功能清單。

針對第 1 節可先使用 fstar.exe;make test,記錄終端狀態、產物位置、錯誤訊息與權限需求,再把結果和 FStarLang/FStar README 的原文逐項比對。若輸入交給下一個工具,還要檢查欄位、檔名、連線狀態或編譯結果是否吻合;若同一命令在不同平台出現差異,應保留環境與版本資訊。這些觀察能把 FStar 在 依賴型別與證明目標 上的實際邊界說清楚,也避免用一次成功啟動推論長期可用。

實際採用時,第 1 節還應保存 FStar 的版本、執行平台、輸入摘要與輸出樣本。對涉及網路、帳號、音訊、位置資料或智慧合約的專案,權限和資料副作用要單獨列出;對編譯器與 SDK,則要保存相依版本及測試命令。若結果與 README 不同,先保留原始日誌,再縮小輸入重試,讓差異能回到 依賴型別與證明目標 這個明確範圍。

FStar:F* 編譯與提取

/proof-oriented-programming-in-fstar.pdf Editing F code You can edit F\ code using various text editors, with Emacs and VSCode currently having the most substantial support, including syntax highlighting, code completion and navigation, and incremental, interactive development. [fstar-mode.el]: Emacs mode for F [fstar-vscode-assistant]: VS Code plugin for F More details on [editor support] are available on the [F\ wiki]. [editor support]: https://github.com/FStarLang/FStar/wiki/Editor-support-for-F [fstar-mode.el]: https://github.com/FStarLang/fstar-mode.el [fstar-vscode-assistant]: https://g

第 2 節要把 FStar 的 F* 編譯與提取 對應到 README 寫出的輸入、命令、檔案或設定鍵,觀察它如何影響實際輸出。文檔未說明的效能、相容性與安全承諾維持未知,不把專案描述延伸成保證。這裡的重點是 F* 編譯與提取,不是重複功能清單。

針對第 2 節可先使用 fstar.exe;make test,記錄終端狀態、產物位置、錯誤訊息與權限需求,再把結果和 FStarLang/FStar README 的原文逐項比對。若輸入交給下一個工具,還要檢查欄位、檔名、連線狀態或編譯結果是否吻合;若同一命令在不同平台出現差異,應保留環境與版本資訊。這些觀察能把 FStar 在 F* 編譯與提取 上的實際邊界說清楚,也避免用一次成功啟動推論長期可用。

實際採用時,第 2 節還應保存 FStar 的版本、執行平台、輸入摘要與輸出樣本。對涉及網路、帳號、音訊、位置資料或智慧合約的專案,權限和資料副作用要單獨列出;對編譯器與 SDK,則要保存相依版本及測試命令。若結果與 README 不同,先保留原始日誌,再縮小輸入重試,讓差異能回到 F* 編譯與提取 這個明確範圍。

FStar:模組、效應與規格

ithub.com/FStarLang/fstar-vscode-assistant AI Agents AI agents are proficient at using F and Pulse. Especially if you are using Copilot CLI or Claude Code, we recommend installing the [proof-copilot] plugin, which provides agents and skills with prompts for specific features of the language and its tooling. [proof-copilot]: https://github.com/FStarLang/proof-copilot 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

第 3 節要把 FStar 的 模組、效應與規格 對應到 README 寫出的輸入、命令、檔案或設定鍵,觀察它如何影響實際輸出。文檔未說明的效能、相容性與安全承諾維持未知,不把專案描述延伸成保證。這裡的重點是 模組、效應與規格,不是重複功能清單。

針對第 3 節可先使用 fstar.exe;make test,記錄終端狀態、產物位置、錯誤訊息與權限需求,再把結果和 FStarLang/FStar README 的原文逐項比對。若輸入交給下一個工具,還要檢查欄位、檔名、連線狀態或編譯結果是否吻合;若同一命令在不同平台出現差異,應保留環境與版本資訊。這些觀察能把 FStar 在 模組、效應與規格 上的實際邊界說清楚,也避免用一次成功啟動推論長期可用。

實際採用時,第 3 節還應保存 FStar 的版本、執行平台、輸入摘要與輸出樣本。對涉及網路、帳號、音訊、位置資料或智慧合約的專案,權限和資料副作用要單獨列出;對編譯器與 SDK,則要保存相依版本及測試命令。若結果與 README 不同,先保留原始日誌,再縮小輸入重試,讓差異能回到 模組、效應與規格 這個明確範圍。

FStar:工具鏈與平台條件

invoked using the command line argument --codegen OCaml or --codegen FSharp . More details on [executing F\ code via OCaml] on the [F\ wiki]. [executing F\ code via OCaml]: https://github.com/FStarLang/FStar/wiki/Executing-F -code Also, code written in Pulse, a DSL in F for concurrent, imperative programming, can be extracted to C or Rust by the [KaRaMeL tool](https://github.com/FStarLang/karamel). Additionally, code written in an ASM-like deeply embedded DSL can be extracted to ASM by the [Vale tool](https://github.com/project-everest/vale). Chatting about F on Zulip F developers and users

第 4 節要把 FStar 的 工具鏈與平台條件 對應到 README 寫出的輸入、命令、檔案或設定鍵,觀察它如何影響實際輸出。文檔未說明的效能、相容性與安全承諾維持未知,不把專案描述延伸成保證。這裡的重點是 工具鏈與平台條件,不是重複功能清單。

針對第 4 節可先使用 fstar.exe;make test,記錄終端狀態、產物位置、錯誤訊息與權限需求,再把結果和 FStarLang/FStar README 的原文逐項比對。若輸入交給下一個工具,還要檢查欄位、檔名、連線狀態或編譯結果是否吻合;若同一命令在不同平台出現差異,應保留環境與版本資訊。這些觀察能把 FStar 在 工具鏈與平台條件 上的實際邊界說清楚,也避免用一次成功啟動推論長期可用。

實際採用時,第 4 節還應保存 FStar 的版本、執行平台、輸入摘要與輸出樣本。對涉及網路、帳號、音訊、位置資料或智慧合約的專案,權限和資料副作用要單獨列出;對編譯器與 SDK,則要保存相依版本及測試命令。若結果與 README 不同,先保留原始日誌,再縮小輸入重試,讓差異能回到 工具鏈與平台條件 這個明確範圍。

FStar:文件未承諾的部分

can chat about F or ask questions at this [Zulip forum](https://fstar.zulipchat.com). (An older forum on Slack is no longer used.) 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. [F\ issue tracker]: https://github.com/FStarLang/FStar/issues [online F\ editor]: https://www.fstar-lang.org/run.php [the GitHub sources]:

第 5 節要把 FStar 的 文件未承諾的部分 對應到 README 寫出的輸入、命令、檔案或設定鍵,觀察它如何影響實際輸出。文檔未說明的效能、相容性與安全承諾維持未知,不把專案描述延伸成保證。這裡的重點是 文件未承諾的部分,不是重複功能清單。

針對第 5 節可先使用 fstar.exe;make test,記錄終端狀態、產物位置、錯誤訊息與權限需求,再把結果和 FStarLang/FStar README 的原文逐項比對。若輸入交給下一個工具,還要檢查欄位、檔名、連線狀態或編譯結果是否吻合;若同一命令在不同平台出現差異,應保留環境與版本資訊。這些觀察能把 FStar 在 文件未承諾的部分 上的實際邊界說清楚,也避免用一次成功啟動推論長期可用。

實際採用時,第 5 節還應保存 FStar 的版本、執行平台、輸入摘要與輸出樣本。對涉及網路、帳號、音訊、位置資料或智慧合約的專案,權限和資料副作用要單獨列出;對編譯器與 SDK,則要保存相依版本及測試命令。若結果與 README 不同,先保留原始日誌,再縮小輸入重試,讓差異能回到 文件未承諾的部分 這個明確範圍。

FStar:以範例執行 fstar.exe

[https://github.com/FStarLang/FStar/blob/master/INSTALL.md building-f-from-sources Other Documentation The [F\ wiki] contains additional technical documentation on F\ , and is especially useful for topics that are not yet covered by the book. [F\ wiki]: https://github.com/FStarLang/FStar/wiki Contributing See [CONTRIBUTING.md](https://github.com/FStarLang/FStar/blob/master/CONTRIBUTING.md) License F is released under the [Apache 2.0 license]; for more details see [LICENSE](https://github.com/FStarLang/FStar/blob/master/LICENSE) [Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0

第 6 節要把 FStar 的 以範例執行 fstar.exe 對應到 README 寫出的輸入、命令、檔案或設定鍵,觀察它如何影響實際輸出。文檔未說明的效能、相容性與安全承諾維持未知,不把專案描述延伸成保證。這裡的重點是 以範例執行 fstar.exe,不是重複功能清單。

針對第 6 節可先使用 fstar.exe;make test,記錄終端狀態、產物位置、錯誤訊息與權限需求,再把結果和 FStarLang/FStar README 的原文逐項比對。若輸入交給下一個工具,還要檢查欄位、檔名、連線狀態或編譯結果是否吻合;若同一命令在不同平台出現差異,應保留環境與版本資訊。這些觀察能把 FStar 在 以範例執行 fstar.exe 上的實際邊界說清楚,也避免用一次成功啟動推論長期可用。

實際採用時,第 6 節還應保存 FStar 的版本、執行平台、輸入摘要與輸出樣本。對涉及網路、帳號、音訊、位置資料或智慧合約的專案,權限和資料副作用要單獨列出;對編譯器與 SDK,則要保存相依版本及測試命令。若結果與 README 不同,先保留原始日誌,再縮小輸入重試,讓差異能回到 以範例執行 fstar.exe 這個明確範圍。

編輯結論

FStar 適合需求正好落在 README 所列範圍,且能管理 fstar.exe;make test 所需環境的使用者;不適合把未說明的相容性、效能或安全性當成既定事實。先執行專案自己的 fstar.exe;make test,用小型輸入核對輸出、日誌、檔案或交易結果,再決定是否納入正式流程。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記