
un lenguaje de programación de sistemas que prioriza la corrección verificable, el determinismo y el rendimiento
Lenguaje de sistemas de propósito general y cadena de herramientas de producción con una superficie de lenguaje seguro incorporado, corrección verificable, ejecución determinista y depuración basada en repetición integrada.
fzy incluye una CLI de producción, fz, tanto para flujos de trabajo del compilador como para validación determinista. La corrección, el determinismo, la repetición, los artefactos de incidentes y la evidencia de producción son parte del flujo de trabajo normal, no un añadido posterior. Para un recorrido visual rápido del lenguaje, abre el FZL showcase incluido en tu navegador con open fzl-showcase.html. Para un breve argumento de por qué podrías elegirlo, consulta WHYFZY.md.
La política de arquitectura del repositorio está tipada internamente y solo en JSON en los límites reales.
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/fzyllmInstalación recomendada:
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh
Esto instala fz en ~/.local/bin, actualiza PATH si es necesario y verifica la instalación con fz version y fz env.
Alternativa desde el código fuente:
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh -s -- --from-source
¿Quieres la visión general más rápida? Abre fzl-showcase.html con open fzl-showcase.html, hojea WHYFZY.md para el argumento del producto, y luego usa la muestra a continuación como un bosquejo ejecutable 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 una cobertura más amplia del lenguaje, usa CODE.md, examples/, y el FZL showcase amigable para el navegador.
Los paquetes del framework siguen las reglas normales de paquetes: decláralos en fozzy.toml bajo [deps], luego impórtalos en el código con use fzbounds;, use fzweb; y nombres de paquete similares. Las comprobaciones directas de código fuente como fz check src/services/mod.fzy --json ahora validan a través del contexto del paquete propietario, por lo que las importaciones de dependencias y los módulos hermanos se comportan igual que en las comprobaciones de proyecto completo.
fz: CLI del compilador para compilar, ejecutar, probar, verificar, documentar, IR, RPC, encabezados, comprobaciones ABI y másfz fmt, fz doc gencrates/parser, crates/ast, crates/hir, crates/fircrates/verifiercrates/runtimecrates/drivertests/*.fozzy.jsonImplementado y validado hoy:
alloc(...) / free(...)defer en tiempo de ejecución en código normal e islas unsafe { ... }, por lo que la limpieza determinista se aplica en lugar de solo documentarsealloc(...) / free(...) conscientes de la propiedad y comprobaciones de ciclo de vida visibles para el verificadorfifo, random, coverage_guidedrpc_send, , , fzy está configurado para respaldar estas afirmaciones de producción hoy:
alloc(...) / free(...) permanecen en código seguro cuando el compilador aún puede verificar la propiedad, la procedencia y la ejecución de la limpiezafzweb más primitivas de seguridad que mantienen los flujos de sesión/cookie/auth dentro de la superficie de tiempo de ejecución compatibleVer también:
docs/system-safety-trust-model-v1.mddocs/production-memory-model-v1.mddocs/production-workflow-v1.mdcargo check --workspace
cargo test --workspace
# Scaffold de un proyecto en el directorio actual o una ruta de destino
fz init [path] [--name package] [--template minimal|rust|ts] [--with run,fuzz,explore,memory,host|all] [--force]
# Compilar código/proyecto
fz build [path] [--release] [--lib] [--threads N] [--backend llvm|cranelift] [--pgo-generate|--pgo-use file] [-l lib] [-L path] [-framework name] [--json]
# Ejecutar código/proyecto o escenario .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]
# Probar código/proyecto o escenario .fozzy
fz test [path] [--det] [--strict-verify] [--sched fifo|random|coverage_guided] [--seed N] [--record path] [--backend llvm|cranelift] [--filter substring] [--json]
# Verificar/comprobar/documentar/herramientas
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 / salidas de documentación
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]
La integración con VS Code vive en tooling/vscode y apunta a fz lsp serve.
Valores predeterminados del tiempo de ejecución y comportamiento expuesto:
127.0.0.18787listen exitoso.env o FZ_DOTENV_PATH se carga una vez antes de las operaciones de entorno/HTTPlog.set_json(1)core.process, core.term, core.thread, core.log, core.text, core.io, core.path y core.utilCon fz test <file.fzy> --det --record artifacts/name.trace.json --json, el controlador emite:
*.trace.json: traza de ejecución determinista*.timeline.json: decisiones del planificador*.report.json: resumen, hallazgos y agrupación de fallos*.explore.json: candidatos a programación y prioridades de escenario*.shrink.json: sugerencias de reducción determinista*.scenarios/ y *.scenarios.json: escenarios nativos del lenguaje generados*.manifest.json: mapa de artefactos que incluye la ruta del escenario principalDivisión de autoría canónica:
core.process, core.term, core.text: argv y UX de terminalcore.log: política de registro y salida estructuradacore.io, core.path: descubrimiento del sistema de archivos y ensamblaje de rutasproc.*: ejecución de procesos hijoEjemplo:
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 es explícito:
term.read_line() == "" y term.stdin_eof() == 0term.read_line() == "" y term.stdin_eof() == 1Para trabajo serio con CLI/tiempo de ejecución, usa tanto el lanzador integrado en el compilador como el binario compilado cuando el comportamiento exacto del terminal sea importante.
cranelift y llvm--backend explícito, luego FZ_NATIVE_BACKEND, luego perfil predeterminadodev -> cranelift, release -> llvmfozzy.lock para dependencias de rutafz vendor [project] --jsonfozzy.lock y vendor/fozzy-vendor.jsondocs/dependency-locking-v1.mdfz abi-check aplica:
Se permiten exportaciones aditivas.
docs/c-interop-production-v1.mdpubext c fn exportado requiere #[ffi_panic(abort|error)]ext unsafe c fn para importaciones C no seguras y llámalas solo dentro de unsafe { ... }fz build --lib emite bibliotecas estáticas/compartidas más un encabezado instalable y un manifiesto ABI
--backend llvm explícito se rechaza con una sugerencia de migraciónunsafe fn y unsafe { ... }fz audit unsafe --workspace --json emite .fz/unsafe-map.workspace.json, .fz/unsafe-docs.workspace.json, .fz/unsafe-docs.workspace.md y .fz/unsafe-docs.workspace.htmlreason, invariant, owner, scope, risk_class y proof_ref son generados por el compilador y guiados por políticasUsa esta secuencia para una confianza estricta:
# 1) Auditoría de determinismo primero
fz doctor --deep --scenario tests/run.pass.fozzy.json --runs 5 --seed 42 --json
# 2) Pruebas deterministas estrictas
fz test --det --strict-verify tests/run.pass.fozzy.json tests/memory.pass.fozzy.json --json
# 3) Grabar una traza real
fz run tests/run.pass.fozzy.json --det --record artifacts/trace.fozzy --json
# 4) Validar pipeline de repetición
fz trace verify artifacts/trace.fozzy --strict --json
fz replay artifacts/trace.fozzy --json
fz ci artifacts/trace.fozzy --json
# 5) Pase de confianza respaldado por el host
fz run tests/host.pass.fozzy.json --host-backends --json
Puerta de liberación estricta:
./scripts/ship_release_gate.sh
Esto incluye comprobaciones de integridad de afirmaciones de documentación que bloquean el lanzamiento mediante 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
Inspecciona directamente los artefactos de prueba nativa emitidos:
artifacts/demo.trace.native.trace.jsonartifacts/demo.trace.report.jsonartifacts/demo.trace.timeline.json cuando los artefactos enriquecidos están habilitadosartifacts/demo.trace.manifest.jsonLos manifiestos de prueba nativa son entradas de primera clase para trace verify / replay / ci en ejecuciones de prueba nativa registradas. No son entradas de escenario y no participan en la shrink de escenarios.
Todos los ejemplos incluidos siguen la convención narrativa DX v1:
src/main.fzy es solo de orquestación y coloca fn main al finalsrc/tests/*mod.fzyProyectos disponibles:
examples/agent_runtimeexamples/context_runtimeexamples/minimal_runtimeexamples/service_appexamples/fullstackexamples/robust_cliexamples/live_serverValidación y flujos de proyecto:
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
Si contribuyes desde un clon en lugar de instalar una compilación de lanzamiento, usa cargo run -q -p fz -- <args> como alternativa solo con código fuente.
Mantén estos documentos de entrega versionados actualizados durante la implementación:
PLAN.mdFEATURES-TO-SHIP.mdrpc_recvrpc_deadlinerpc_canceltest analizadosmodpubext c fn exportadasfz rpc gencore.crypto y core.security, que incluye aleatoriedad segura, hash, HMAC, comparación en tiempo constante y codificaciones seguras para URLfzweb para enrutamiento de aplicaciones, cookies, sesiones, cargas multipartes, persistencia, SSE, websockets y exportación OpenAPIfz run ejecuta la salida nativa directamente con transmisión de texto en vivo o captura JSONpython3 scripts/direct_memory_architecture_gate.pypython3 scripts/direct_memory_perf_gate.pycore.gpu, con ejecución en vivo de Metal en Apple y contratos de adaptador spirv/nvptx compartidoscore.crypto y core.security cubren aleatoriedad segura, resúmenes, HMAC, codificaciones seguras para URL y comparaciones en tiempo constante para flujos de autenticación/sesión de producciónfzweb incluye módulos de framework agrupados por preocupación, más rutas integradas para salud, disponibilidad, métricas, inspección, búsqueda, cookies, sesiones, subidas, eventos, websockets, CRUD de elementos, OpenAPI y activos estáticosfozzy.toml