
एक सिस्टम प्रोग्रामिंग भाषा जो सत्यापन योग्य शुद्धता, निर्धारणवाद और प्रदर्शन को प्राथमिकता देती है।
एक सामान्य-उद्देश्यीय सिस्टम भाषा और उत्पादन टूलचेन जिसमें डिफ़ॉल्ट रूप से मेमोरी-सुरक्षित भेजी गई सुरक्षित-भाषा सतह, सत्यापन योग्य शुद्धता, निर्धारित निष्पादन, और रीप्ले-प्रथम डिबगिंग शामिल है।
fzy एक उत्पादन 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, , fzy आज इन उत्पादन दावों का समर्थन करने के लिए तैयार है:
alloc(...) / free(...) सुरक्षित कोड में रहता है जब कंपाइलर अभी भी स्वामित्व, उत्पत्ति, और सफाई निष्पादन को सत्यापित कर सकता हैfzweb के माध्यम से उत्पादन वेब/सेवा कवरेज और सुरक्षा प्राइमिटिव जो सत्र/कुकी/प्रमाणीकरण प्रवाह को समर्थित रनटाइम सतह के अंदर रखते हैंयह भी देखें:
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 पैकेज] [--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 फ़ाइल] [-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 फ़ाइल] [--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 / docs आउटपुट
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 कंपाइलर-जनित और नीति-संचालित हैंसख्त विश्वास के लिए इस अनुक्रम का उपयोग करें:
# 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) एक वास्तविक ट्रेस रिकॉर्ड करें
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.mdrpc_deadlinerpc_canceltest ब्लॉकों से भाषा-मूल परिदृश्य पीढ़ीmod घोषणाओं से पुनरावर्ती मल्टी-फ़ाइल मॉड्यूल लोडिंगpubext c fn हस्ताक्षरों से C हेडर पीढ़ीfz rpc gen के माध्यम से RPC स्कीमा, क्लाइंट, और सर्वर स्टब पीढ़ीcore.crypto और core.security के माध्यम से उत्पादन क्रिप्टो/सुरक्षा सतह, जिसमें सुरक्षित रैंडम, हैशिंग, HMAC, स्थिर-समय तुलना, और URL-सुरक्षित एन्कोडिंग शामिल हैंfzweb उत्पादन वेब फ्रेमवर्क मॉड्यूल ऐप रूटिंग, कुकीज़, सत्र, मल्टीपार्ट अपलोड, दृढ़ता, SSE, वेबसॉकेट, और 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 उत्पादन प्रमाणीकरण/सत्र प्रवाहों के लिए सुरक्षित रैंडम, डाइजेस्ट, HMAC, URL-सुरक्षित एन्कोडिंग, और स्थिर-समय तुलना को कवर करते हैंfzweb चिंता-समूहित फ्रेमवर्क मॉड्यूल और स्वास्थ्य, तत्परता, मीट्रिक, निरीक्षण, खोज, कुकीज़, सत्र, अपलोड, ईवेंट, वेबसॉकेट, आइटम CRUD, OpenAPI, और स्थिर संपत्तियों के लिए अंतर्निहित रूट शिप करता हैfozzy.toml में रहते हैं