
uma linguagem de programação de sistemas que prioriza correção verificável, determinismo e desempenho
Linguagem de sistemas de propósito geral e toolchain de produção com uma superfície de linguagem segura por padrão, correção verificável, execução determinística e depuração baseada em replay integrada.
O fzy fornece uma CLI de produção, fz, para fluxos de trabalho do compilador e validação determinística. Correção, determinismo, replay, artefatos de incidentes e evidências de produção fazem parte do fluxo de trabalho normal, e não uma reflexão tardia. Para um tour visual rápido da linguagem, abra o FZL showcase enviado no seu navegador com open fzl-showcase.html. Para uma breve argumentação sobre por que você pode escolhê-lo, veja WHYFZY.md.
A política de arquitetura do repositório é tipada internamente e JSON apenas em fronteiras reais.
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/fzyllmInstalação recomendada:
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh
Isso instala fz em ~/.local/bin, atualiza PATH se necessário e verifica a instalação com fz version e fz env.
Alternativa a partir da fonte:
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh -s -- --from-source
Quer a visão geral mais rápida? Abra fzl-showcase.html com open fzl-showcase.html, leia WHYFZY.md para o argumento do produto e depois use o exemplo abaixo como um esboço executável compacto.
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
}
Para uma cobertura mais ampla da linguagem, use CODE.md, examples/ e o FZL showcase compatível com navegadores.
Os pacotes de framework seguem as regras normais de pacotes: declare-os em fozzy.toml sob [deps], depois importe-os no código-fonte com use fzbounds;, use fzweb; e nomes de pacotes semelhantes. Verificações diretas de código-fonte, como fz check src/services/mod.fzy --json, agora validam através do contexto do pacote proprietário, para que importações de dependências e módulos irmãos se comportem da mesma forma que nas verificações de projeto completo.
fz: CLI do compilador para build, run, test, verify, docs, IR, RPC, headers, verificação de ABI e muito maisfz fmt, fz doc gencrates/parser, crates/ast, crates/hir, crates/fircrates/verifiercrates/runtimecrates/drivertests/*.fozzy.jsonImplementado e validado hoje:
alloc(...) / free(...)defer em tempo de execução em todo código normal e ilhas unsafe { ... }, para que a limpeza determinística seja aplicada em vez de apenas documentadaalloc(...) / free(...) cientes de propriedade e verificações de ciclo de vida visíveis pelo verificadorfifo, random, coverage_guidedrpc_send, , , O fzy está configurado para suportar estas alegações de produção hoje:
alloc(...) / free(...) permanecem em código seguro quando o compilador ainda pode verificar propriedade, proveniência e execução de limpezafzweb mais primitivas de segurança que mantêm fluxos de sessão/cookie/auth dentro da superfície de runtime suportadaVeja também:
docs/system-safety-trust-model-v1.mddocs/production-memory-model-v1.mddocs/production-workflow-v1.mdcargo check --workspace
cargo test --workspace
# Scaffold de um projeto no diretório atual ou caminho de destino
fz init [path] [--name package] [--template minimal|rust|ts] [--with run,fuzz,explore,memory,host|all] [--force]
# Build do código-fonte/projeto
fz build [path] [--release] [--lib] [--threads N] [--backend llvm|cranelift] [--pgo-generate|--pgo-use file] [-l lib] [-L path] [-framework name] [--json]
# Executar código-fonte/projeto ou cenário .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]
# Testar código-fonte/projeto ou cenário .fozzy
fz test [path] [--det] [--strict-verify] [--sched fifo|random|coverage_guided] [--seed N] [--record path] [--backend llvm|cranelift] [--filter substring] [--json]
# Verificar/verificar/documentação/ferramentas
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]
# Saídas 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]
A integração com VS Code está em tooling/vscode e tem como alvo fz lsp serve.
Padrões de runtime e comportamento exposto:
127.0.0.18787listen bem-sucedido.env ou FZ_DOTENV_PATH é carregado uma vez antes de operações de env/HTTPlog.set_json(1)core.process, core.term, core.thread, core.log, core.text, core.io, core.path e core.utilCom fz test <file.fzy> --det --record artifacts/name.trace.json --json, o driver emite:
*.trace.json: rastreamento de execução determinístico*.timeline.json: decisões do escalonador*.report.json: resumo, descobertas e agrupamento de falhas*.explore.json: candidatos a escalonador e prioridades de cenário*.shrink.json: dicas de redução determinísticas*.scenarios/ e *.scenarios.json: cenários nativos da linguagem gerados*.manifest.json: mapa de artefatos incluindo o caminho do cenário principalDivisão de criação canônica:
core.process, core.term, core.text: argv e UX de terminalcore.log: política de logging e saída estruturadacore.io, core.path: descoberta de sistema de arquivos e montagem de caminhosproc.*: execução de processos filhosExemplo:
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 é explícito:
term.read_line() == "" e term.stdin_eof() == 0term.read_line() == "" e term.stdin_eof() == 1Para trabalho sério com CLI/runtime, use tanto o lançador integrado ao compilador quanto o binário compilado quando o comportamento exato do terminal for importante.
cranelift e llvm--backend explícito, depois FZ_NATIVE_BACKEND, depois padrão do perfildev -> cranelift, release -> llvmfozzy.lock para dependências de caminhofz vendor [project] --jsonfozzy.lock e vendor/fozzy-vendor.jsondocs/dependency-locking-v1.mdfz abi-check impõe:
Exportações aditivas são permitidas.
docs/c-interop-production-v1.mdpubext c fn exportada requer #[ffi_panic(abort|error)]ext unsafe c fn para importações C inseguras e chame-as apenas dentro de unsafe { ... }fz build --lib emite bibliotecas estáticas/compartilhadas mais um cabeçalho instalável e manifesto ABI
--backend llvm explícito é rejeitado com uma dica de migraçãounsafe fn e unsafe { ... }fz audit unsafe --workspace --json emite .fz/unsafe-map.workspace.json, .fz/unsafe-docs.workspace.json, .fz/unsafe-docs.workspace.md e .fz/unsafe-docs.workspace.htmlreason, invariant, owner, scope, risk_class e proof_ref são gerados pelo compilador e orientados por políticaUse esta sequência para confiança estrita:
# 1) Auditoria de determinismo primeiro
fz doctor --deep --scenario tests/run.pass.fozzy.json --runs 5 --seed 42 --json
# 2) Testes determinísticos estritos
fz test --det --strict-verify tests/run.pass.fozzy.json tests/memory.pass.fozzy.json --json
# 3) Gravar um rastreamento real
fz run tests/run.pass.fozzy.json --det --record artifacts/trace.fozzy --json
# 4) Validar pipeline de replay
fz trace verify artifacts/trace.fozzy --strict --json
fz replay artifacts/trace.fozzy --json
fz ci artifacts/trace.fozzy --json
# 5) Passagem de confiança com suporte do host
fz run tests/host.pass.fozzy.json --host-backends --json
Portão de liberação estrito:
./scripts/ship_release_gate.sh
Isso inclui verificações de integridade de alegação de documentação que bloqueiam a liberação via 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
Inspecione os artefatos de teste nativo emitidos diretamente:
artifacts/demo.trace.native.trace.jsonartifacts/demo.trace.report.jsonartifacts/demo.trace.timeline.json quando artefatos ricos estão ativadosartifacts/demo.trace.manifest.jsonManifestos de teste nativo são entradas de primeira classe para trace verify / replay / ci para execuções de teste nativo gravadas. Eles não são entradas de cenário e não participam do shrink de cenário.
Todos os exemplos fornecidos seguem a convenção de DX narrativa v1:
src/main.fzy é apenas orquestração e coloca fn main por últimosrc/tests/*mod.fzyProjetos disponíveis:
examples/agent_runtimeexamples/context_runtimeexamples/minimal_runtimeexamples/service_appexamples/fullstackexamples/robust_cliexamples/live_serverValidação e fluxos de projeto:
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
Se você estiver contribuindo de um checkout em vez de instalar um lançamento, use cargo run -q -p fz -- <args> como alternativa apenas com fonte.
Mantenha estes documentos de entrega versionados atualizados durante a implementação:
PLAN.mdFEATURES-TO-SHIP.mdrpc_recvrpc_deadlinerpc_canceltest analisadosmodpubext c fn exportadasfz rpc gencore.crypto e core.security, incluindo aleatório seguro, hashing, HMAC, comparação em tempo constante e codificações seguras para URLfzweb para roteamento de aplicativos, cookies, sessões, uploads multipartes, persistência, SSE, websockets e exportação OpenAPIfz run executa a saída nativa diretamente com streaming de texto ao vivo ou captura JSONpython3 scripts/direct_memory_architecture_gate.pypython3 scripts/direct_memory_perf_gate.pycore.gpu, com execução Metal ao vivo no Apple mais contratos de adaptador spirv/nvptx compartilhadoscore.crypto e core.security cobrem aleatório seguro, digests, HMAC, codificações seguras para URL e comparações em tempo constante para fluxos de autenticação/sessão de produçãofzweb fornece módulos de framework agrupados por preocupação mais rotas integradas para saúde, prontidão, métricas, inspeção, pesquisa, cookies, sessões, uploads, eventos, websockets, CRUD de itens, OpenAPI e ativos estáticosfozzy.toml