un langage de programmation système privilégiant la vérifiabilité de la correction, le déterminisme et la performance
Langage systèmes à usage général et chaîne d'outils de production avec une surface de langage sécurisé livrée par défaut, une correction vérifiable, une exécution déterministe et un débogage basé sur le rejeu intégré.
fzy livre une CLI de production, fz, pour les workflows du compilateur et la validation déterministe. La correction, le déterminisme, le rejeu, les artefacts d'incident et les preuves de production font partie du workflow normal plutôt que d'une réflexion ultérieure. Pour un aperçu visuel rapide du langage, ouvrez la vitrine FZL fournie dans votre navigateur avec open fzl-showcase.html. Pour l'argumentation concise expliquant pourquoi vous pourriez le choisir, consultez WHYFZY.md.
La politique d'architecture du référentiel est typée en interne et JSON uniquement aux limites réelles.
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/fzyllmInstallation recommandée :
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh
Cela installe fz dans ~/.local/bin, met à jour PATH si nécessaire, et vérifie l'installation avec fz version et fz env.
Solution de secours depuis les sources :
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh -s -- --from-source
Vous voulez l'aperçu le plus rapide ? Ouvrez fzl-showcase.html avec open fzl-showcase.html, parcourez WHYFZY.md pour l'argument produit, puis utilisez l'exemple ci-dessous comme un sketch exécutable compact.
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
}
Pour une couverture plus large du langage, utilisez CODE.md, examples/ et la vitrine FZL compatible navigateur.
Les paquets du framework suivent les règles normales des paquets : déclarez-les dans fozzy.toml sous [deps], puis importez-les dans le code source avec use fzbounds;, use fzweb;, et des noms de paquets similaires. Les vérifications directes du code source telles que fz check src/services/mod.fzy --json valident désormais via le contexte du paquet propriétaire, donc les imports de dépendances et les modules frères se comportent de la même manière que dans les vérifications de projet complet.
fz : CLI du compilateur pour la construction, l'exécution, les tests, la vérification, la documentation, l'IR, le RPC, les en-têtes, les vérifications ABI, et plus encorefz fmt, fz doc gencrates/parser, crates/ast, crates/hir, crates/fircrates/verifiercrates/runtimecrates/drivertests/*.fozzy.jsonImplémenté et validé aujourd'hui :
alloc(...) / free(...)defer d'exécution dans le code normal et les îlots unsafe { ... }, donc un nettoyage déterministe est imposé plutôt que simplement documentéalloc(...) / free(...) conscients de la possession et des vérifications du cycle de vie visibles par le vérificateurfifo, random, coverage_guidedrpc_send, rpc_recv, rpc_deadline, rpc_canceltest analysésmodpubext c fn exportéesfz rpc gencore.crypto et core.security, incluant aléatoire sécurisé, hachage, HMAC, comparaison à temps constant et encodages sûrs pour URLfzweb pour le routage applicatif, cookies, sessions, téléchargements multipart, persistance, SSE, websockets et export OpenAPIfz run exécute directement la sortie native avec diffusion en direct du texte ou capture JSONpython3 scripts/direct_memory_architecture_gate.pypython3 scripts/direct_memory_perf_gate.pycore.gpu, avec exécution Metal en direct sur Apple plus des contrats d'adaptateur partagé spirv/nvptxfzy est configuré pour soutenir ces revendications de production aujourd'hui :