
検証可能な正確性、決定性、およびパフォーマンスを優先するシステムプログラミング言語
汎用システム言語およびプロダクションツールチェーン。デフォルトでメモリ安全な出荷時安全言語表面、検証可能な正当性、決定論的実行、およびリプレイ優先デバッグが組み込まれています。
fzy は、コンパイラワークフローと決定論的検証の両方のために、1 つのプロダクション CLI fz を提供します。正当性、決定論、リプレイ、インシデント成果物、およびプロダクションエビデンスは、後付けではなく通常のワークフローの一部です。言語の簡単なビジュアルツアーについては、open fzl-showcase.html でブラウザに同梱の FZL ショーケース を開いてください。なぜこれを選ぶのかの簡単な説明は、WHYFZY.md を参照してください。
リポジトリアーキテクチャポリシーは、内部的には型付けされ、実際の境界でのみ JSON です。
INSTALL.mdUSAGE.mdWHYFZY.mdCODE.mddocs/production-workflow-v1.mddocs/gpu-v1.mddocs/system-safety-trust-model-v1.mddocs/unsafe-contract-authoring-v1.mddocs/language-stability-v1.mddocs/workspace-policy-v1.mddocs/operational-insights-v1.mdfzyllm: saint0x/fzyllm推奨インストール:
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh
これにより、fz が ~/.local/bin にインストールされ、必要に応じて PATH が更新され、fz version および fz env でインストールが検証されます。
ソースからのフォールバック:
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh -s -- --from-source
最速の概要が必要ですか? open fzl-showcase.html で fzl-showcase.html を開き、WHYFZY.md をざっと読んで製品の論旨を確認したら、以下のサンプルをコンパクトな実行可能スケッチとして使用してください。
use core.log;
use core.path;
use core.process;
use core.time;
enum Mode {
Fast,
Safe,
}
trait Scorer {
fn score(endpoint: Url) -> i32;
}
struct HttpScorer {}
impl Scorer for HttpScorer {
fn score(endpoint: Url) -> i32 {
discard endpoint;
return 7;
}
}
struct Config<TEndpoint> {
retries: i32,
endpoint: TEndpoint,
mode: Mode,
}
fn weight(mode: Mode) -> i32 {
match mode {
Mode::Fast => return 3,
Mode::Safe => return 1,
_ => return 1,
}
}
async fn boost(v: i32) -> i32 {
checkpoint()
return v + 1
}
fn normalize<T: Scorer>(cfg: Config<Url>) -> i32 {
return weight(cfg.mode) + T.score(cfg.endpoint)
}
async fn run_once(cfg: Config<Url>) -> i32 {
let base = normalize<HttpScorer>(cfg)
return await boost(base)
}
fn main() -> i32 {
let cfg = Config { retries: 4, endpoint: url.parse("https://example.test"), mode: Mode::Fast }
let now = time.now()
let out_path = path.join("tmp", "score.log")
let mode = process.argv_or(1, "showcase")
let score = normalize<HttpScorer>(cfg)
log.info("snippet.run", out_path)
discard mode
discard run_once
if score + now > 0 then return score
return score
}
より広範な言語カバレッジについては、CODE.md、examples/、およびブラウザ対応の FZL ショーケース を使用してください。
フレームワークパッケージは通常のパッケージルールに従います。fozzy.toml の [deps] で宣言し、ソースで use fzbounds;、use fzweb; などのパッケージ名でインポートします。fz check src/services/mod.fzy --json などの直接ソースチェックは、所有パッケージコンテキストを通じて検証されるようになったため、依存関係のインポートと兄弟モジュールは、フルプロジェクトチェックと同じように動作します。
fz: ビルド、実行、テスト、検証、ドキュメント、IR、RPC、ヘッダー、ABI チェックなどのためのコンパイラ CLIfz fmt、fz doc gencrates/parser、crates/ast、crates/hir、crates/fircrates/verifiercrates/runtimecrates/drivertests/*.fozzy.json現在実装および検証済み:
alloc(...) / free(...) によるオプトインの手動メモリ管理unsafe { ... } アイランド全体での実際のランタイム defer セマンティクス。これにより、決定論的なクリーンアップが文書化されるだけでなく強制されるalloc(...) / free(...) フローと検証器に見えるライフサイクルチェックが行われるfifo、random、coverage_guidedrpc_send、rpc_recv、rpc_deadline、rpc_cancelfzy は、現在これらのプロダクションの主張をサポートするように設定されています:
alloc(...) / free(...) は、コンパイラが依然として所有権、来歴、およびクリーンアップ実行を検証できる場合、安全なコード内に留まるfzweb およびセッション/クッキー/認証フローをサポートされたランタイム表面内に維持するセキュリティプリミティブを通じたプロダクション Web/サービスカバレッジ関連情報:
docs/system-safety-trust-model-v1.mddocs/production-memory-model-v1.mddocs/production-workflow-v1.mdcargo check --workspace
cargo test --workspace
# 現在のディレクトリまたはターゲットパスにプロジェクトをスキャフォールド
fz init [path] [--name package] [--template minimal|rust|ts] [--with run,fuzz,explore,memory,host|all] [--force]
# ソース/プロジェクトをビルド
fz build [path] [--release] [--lib] [--threads N] [--backend llvm|cranelift] [--pgo-generate|--pgo-use file] [-l lib] [-L path] [-framework name] [--json]
# ソース/プロジェクトまたは .fozzy シナリオを実行
fz run [path] [--det] [--strict-verify] [--seed N] [--record path] [--host-backends] [--backend llvm|cranelift] [--max-seconds N] [--exit-on-healthcheck URL] [--smoke-http URL] [-- <args>] [--json]
# ソース/プロジェクトまたは .fozzy シナリオをテスト
fz test [path] [--det] [--strict-verify] [--sched fifo|random|coverage_guided] [--seed N] [--record path] [--backend llvm|cranelift] [--filter substring] [--json]
# 検証/チェック/ドキュメント/ツール
fz fmt [path ...] [--check] [--json]
fz check [path] [--json]
fz verify [path] [--json]
fz lint [path] [--tier production|pedantic|compat] [--json]
fz dx-check [project] [--strict] [--json]
fz spec-check [--json]
fz emit-ir [path] [--json]
fz perf [--artifact artifacts/bench_core_rust_vs_fzy.json] [--json]
fz stability-dashboard [--json]
fz parity [path] [--seed N] [--json]
fz audit unsafe [path] [--workspace] [--json]
fz vendor [project] [--json]
fz abi-check <current.abi.json> --baseline <baseline.abi.json> [--json]
fz debug-check [path] [--json]
fz pgo merge [path] [--out file] [--json]
fz lsp diagnostics [path] [--json]
fz lsp definition <path> <symbol> [--json]
fz lsp hover <path> <symbol> [--json]
fz lsp rename <path> <from> <to> [--json]
fz lsp smoke [path] [--json]
fz lsp serve [--path <workspace>] [--json]
fz map suites [--root dir] [--scenario-root dir] [--profile pedantic|production|compat] [--json]
fz artifacts ls latest [--json]
fz report show latest [--format json|text] [--json]
fz usage [--json]
fz env [--json]
fz version [--json]
fz inspect stdlib <module> [--json]
fz schema [--json]
fz validate <scenario> [--json]
fz trace verify <trace> [--strict] [--json]
fz replay <trace> [--json]
fz shrink <trace> [--json]
fz ci <trace> [--json]
fz trace-native <trace.fozzy> [--out path] [--json]
# FFI / RPC / ドキュメント出力
fz headers [path] [--out path] [--json]
fz rpc gen [path] [--out-dir dir] [--json]
fz doc gen [path] [--format json|html|markdown] [--out path] [--reference path] [--json]
VS Code 統合は tooling/vscode にあり、fz lsp serve をターゲットとしています。
ランタイムのデフォルトと顕在化する動作:
127.0.0.18787listen で出力される.env または FZ_DOTENV_PATH は、env/HTTP 操作の前に一度だけロードされるlog.set_json(1) でオプトインcore.process、core.term、core.thread、core.log、core.text、core.io、core.path、core.util が含まれるfz test <file.fzy> --det --record artifacts/name.trace.json --json を使用すると、ドライバは以下を出力します:
*.trace.json: 決定論的実行トレース*.timeline.json: スケジュール決定*.report.json: サマリー、発見、失敗のグループ化*.explore.json: スケジュール候補とシナリオ優先度*.shrink.json: 決定論的縮小ヒント*.scenarios/ および *.scenarios.json: 生成された言語ネイティブシナリオ*.manifest.json: プライマリシナリオパスを含むアーティファクトマップ正規のオーサリング分割:
core.process、core.term、core.text: argv と端末 UXcore.log: ロギングポリシーと構造化出力core.io、core.path: ファイルシステム検出とパスアセンブリproc.*: 子プロセス実行例:
use core.log;
use core.process;
use core.term;
use core.text;
fn main() -> i32 {
let mode = process.argv_or(1, "serve")
discard log.set_sink_name("stderr")
discard log.set_level_name("warn")
discard term.transcript_kv("mode", mode, 8)
if term.is_interactive() == 1 {
discard term.eprint_line(str.concat("interactive=", str.from_i32(term.is_interactive())))
}
discard term.print_line(text.indent("ready\nwaiting", " "))
return 0
}
EOF は明示的:
term.read_line() == "" かつ term.stdin_eof() == 0term.read_line() == "" かつ term.stdin_eof() == 1本格的な CLI/ランタイム作業には、正確な端末動作が重要な場合、コンパイラ統合ランチャーとビルドされたバイナリの両方を使用してください。
cranelift および llvm--backend、次に FZ_NATIVE_BACKEND、次にプロファイルデフォルトdev -> cranelift、release -> llvmfozzy.lock ドリフトチェックを強制しますfz vendor [project] --json でロック状態を更新fozzy.lock および vendor/fozzy-vendor.json が含まれるdocs/dependency-locking-v1.mdfz abi-check は以下を強制します:
追加エクスポートは許可されます。
docs/c-interop-production-v1.mdpubext c fn には #[ffi_panic(abort|error)] が必要ですext unsafe c fn を推奨し、それらは unsafe { ... } 内でのみ呼び出しますfz build --lib は、静的/共有ライブラリとインストール可能なヘッダーおよび ABI マニフェストを出力します
--backend llvm は移行ヒントとともに拒否されますunsafe fn および unsafe { ... } を通じてファーストクラスfz audit unsafe --workspace --json は、.fz/unsafe-map.workspace.json、.fz/unsafe-docs.workspace.json、.fz/unsafe-docs.workspace.md、.fz/unsafe-docs.workspace.html を出力しますreason、invariant、owner、scope、risk_class、proof_ref などのメタデータフィールドは、コンパイラ生成およびポリシー駆動ですfozzy.toml にあります厳格な信頼のためにこのシーケンスを使用してください:
# 1) 最初に決定論監査
fz doctor --deep --scenario tests/run.pass.fozzy.json --runs 5 --seed 42 --json
# 2) 厳格な決定論テスト
fz test --det --strict-verify tests/run.pass.fozzy.json tests/memory.pass.fozzy.json --json
# 3) 1 つの実際のトレースを記録
fz run tests/run.pass.fozzy.json --det --record artifacts/trace.fozzy --json
# 4) リプレイパイプラインを検証
fz trace verify artifacts/trace.fozzy --strict --json
fz replay artifacts/trace.fozzy --json
fz ci artifacts/trace.fozzy --json
# 5) ホストバックアップ信頼パス
fz run tests/host.pass.fozzy.json --host-backends --json
厳格なリリースゲート:
./scripts/ship_release_gate.sh
これには、scripts/safety_claim_integrity_gate.py を介したリリースブロッキングドキュメント主張整合性チェックが含まれます。
cat >/tmp/demo.fzy <<'FZY'
test "alpha" {}
test "beta" nondet {}
rpc Ping(req: PingReq) -> PingRes;
async fn worker() -> i32 {}
fn main() -> i32 {
timeout(1)
return 0
}
FZY
fz test /tmp/demo.fzy --det --sched random --seed 13 --record artifacts/demo.trace.json --json
出力されたネイティブテストアーティファクトを直接検査:
artifacts/demo.trace.native.trace.jsonartifacts/demo.trace.report.jsonartifacts/demo.trace.timeline.json (リッチアーティファクトが有効な場合)artifacts/demo.trace.manifest.jsonネイティブテストマニフェストは、記録されたネイティブテスト実行のためのファーストクラスの trace verify / replay / ci 入力です。これらはシナリオ入力ではなく、シナリオ shrink には参加しません。
出荷されるすべての例は、v1 ナラティブ DX 規則に従います:
src/main.fzy はオーケストレーションのみであり、fn main を最後に配置しますsrc/tests/* の下にありますmod.fzy を使用します利用可能なプロジェクト:
examples/agent_runtimeexamples/context_runtimeexamples/minimal_runtimeexamples/service_appexamples/fullstackexamples/robust_cliexamples/live_server検証とプロジェクトフロー:
fz dx-check examples/fullstack --strict --json
fz check examples/fullstack --json
fz build examples/fullstack --backend cranelift --json
fz build examples/fullstack --release --backend llvm --json
fz run examples/fullstack --backend cranelift --json
fz test examples/fullstack --det --seed 41 --backend llvm --json
fz headers examples/fullstack --json
fz abi-check examples/fullstack/include/fullstack.abi.json --baseline examples/fullstack/include/fullstack.abi.json --json
fz dx-check examples/robust_cli --strict --json
fz build examples/robust_cli --backend cranelift --json
fz run examples/robust_cli --backend llvm --json
fz test examples/robust_cli --det --seed 55 --backend cranelift --json
fz dx-check examples/live_server --strict --json
fz build examples/live_server --backend cranelift --json
fz run examples/live_server --backend llvm --json
fz test examples/live_server --det --seed 77 --backend cranelift --record artifacts/live_server.stats.trace.json --rich-artifacts --json
fz run tests/live.server.interhttp.fozzy.json --host-backends --json
リリースビルドをインストールするのではなく、チェックアウトから貢献している場合は、ソースのみのフォールバックとして cargo run -q -p fz -- <args> を使用してください。
実装中にこれらのバージョン管理された配信ドキュメントを最新に保ってください:
PLAN.mdFEATURES-TO-SHIP.mdtest ブロックからの言語ネイティブシナリオ生成mod 宣言からの再帰的マルチファイルモジュール読み込みpubext c fn シグネチャからの C ヘッダー生成fz rpc gen による RPC スキーマ、クライアント、サーバースタブ生成core.crypto および core.security によるプロダクション暗号化/セキュリティ表面(セキュアランダム、ハッシュ、HMAC、定数時間比較、URL セーフエンコーディングを含む)fzweb プロダクション Web フレームワークモジュール(アプリルーティング、クッキー、セッション、マルチパートアップロード、永続化、SSE、WebSocket、OpenAPI エクスポート)fz run は、ライブテキストストリーミングまたは JSON キャプチャでネイティブ出力を直接実行python3 scripts/direct_memory_architecture_gate.pypython3 scripts/direct_memory_perf_gate.pycore.gpu を通じたプロダクション GPU 表面(Apple 上でのライブ Metal 実行と共有 spirv/nvptx アダプター契約)core.crypto および core.security は、プロダクションの auth/session フロー向けにセキュアランダム、ダイジェスト、HMAC、URL セーフエンコーディング、定数時間比較をカバーfzweb は、関心グループ化されたフレームワークモジュールと、ヘルスチェック、準備、メトリクス、インスペクション、検索、クッキー、セッション、アップロード、イベント、WebSocket、アイテム CRUD、OpenAPI、静的アセットのための組み込みルートを提供