docs/reference/commands
Référence · CLI

Commandes

Les commandes de build, d'exemples, de tests, de codegen et de qualité, réunies en un seul endroit.

5 min de lecture

Votre application

Ces steps proviennent du fichier templates/minimal-app/build.zig du modèle. Le step app n’est enregistré que pour les cibles macOS.

Terminal
zig build                      # build the executable
zig build run                  # build and run
zig build app                  # package a macOS .app bundle (zig-out/)
zig build -Dtest-mode=true     # enable the automation harness (forwarded to zenit)

Exemples du dépôt zenit

Chaque exemple a deux steps : zig build <name> produit un .app signé ad hoc, et zig build run-<name> lance directement l’exécutable.

StepNom du .appDescription
hello-buttonHello ButtonFenêtre minimale et bouton
counter-reactiveReactive CounterDémo Signal / Memo / Effect
virtual-list-perf100k Virtual ListTest de charge VirtualList à 100k lignes
text-inputText Input DemoInput / Textarea avec text_core
multi-windowMulti WindowDeux fenêtres natives, routage par fenêtre
storybookzenit StorybookVitrine de tous les composants et cible e2e
devtools-probeDevTools ProbeRecette en fenêtre réelle du panneau de performances DevTools
interop-probezenit Interop ProbeVérification système du presse-papiers riche / glisser vers l'extérieur
console-probeConsole ProbeVérification en fenêtre réelle de Console + DevTools
design-probeDesign ProbeCible de comparaison avec les maquettes
Terminal
zig build run-hello-button
zig build run-counter-reactive
zig build run-storybook

Tests

Suites

CommandeRôle
testAlias de test-headless
test-headlessTests déterministes ; aucun appareil Metal réel requis
test-allTests déterministes plus tests Metal sur appareil réel
test-null-backendCompile et exécute les tests déterministes sur le backend GPU Null pour valider l'abstraction RHI

UI et réactivité

CommandeRôle
test-uiTests du système UI ; -Dtest-filter=<substring> n'exécute que les noms correspondants
test-ui-coreTests d'intégration ui_core (src/ui/core/tests.zig)
test-reactiveTests du système réactif
test-allocation-campaignBalaye les points d'échec d'allocation aux frontières transactionnelles du framework

Rendu et GPU

CommandeRôle
test-renderTests du module render
test-gpuTests de l'abstraction GPU
test-metalTests nécessitant un appareil Metal réel
test-svgTests du parseur / rastériseur SVG
test-timing-ringTests de l'anneau de timing des frames

Texte et i18n

CommandeRôle
test-textTests du module text (catalogue de polices / graisses)
test-text-coreTests du module text_core
test-text-propertiesTests de propriétés des coordonnées de texte, déterministes et paramétrables par graine
test-i18nTests du module i18n
test-bidi-conformanceDonnées de conformité UAX #9 complètes d'Unicode 17.0.0

Plateforme, fenêtres et packaging

CommandeRôle
test-window-lifecycleTests déterministes du cycle de vie et du routage multifenêtre
test-text-hook-ownersPile de propriété du hook de mesure de texte à l'échelle du processus (fermer une fenêtre conserve les hooks des autres)
test-selector-scalePropagation de l'échelle FontSelector en HiDPI
test-system-sdkTests System SDK
test-system-sdk-backendsTests déterministes des backends natifs
check-system-sdk-crossCompile les tests System SDK pour Linux / Windows (sans exécution)
test-harnessTests de test_harness (file-RPC)
test-package-consumerCompile et lance une application en aval avec des paquets directs et filtrés par Zig

Codegen et outils

CommandeRôle
benchRéférences de performance : zig build bench [-- filter] [-- json=path]
gen-iconsRégénère le module choisi par -Dicon-set (lucide par défaut)
gen-icons-lucideRégénère le module public d'icônes Lucide
gen-icons-commonRégénère le module d'icônes common, indépendant du provider
gen-icons-untitled / gen-icons-allJeu d'icônes interne ; checkouts internes uniquement
gen-component-indexAnalyse l'AST de src/ui et régénère component_index_generated.zig
capability-matrixAffiche la matrice de capacités macOS générée
text-corpus-dumpAffiche le corpus T0 de coordonnées de texte versionné

Options de build

OptionDéfautEffet
-Dtest-mode=truefalseActive le harness e2e (serveur file-RPC)
-De2e-port=<n>19816Port E2E, utilisé dans le nom du répertoire RPC par défaut
-Dtest-filter=<s>—N'exécute que les tests test-ui dont le nom contient la sous-chaîne
-Dicon-set=<name>lucideProvider d'icônes intégré : lucide ou untitled (interne uniquement)
-Dgpu-backend=<name>metalBackend GPU : metal ou null

Scripts qualité

ScriptCe qu'il vérifie
./scripts/check_oss_boundary.shVérifie statiquement les imports de src/ui, puis compile hello-button pour confirmer qu'aucun module interdit n'est atteignable
./scripts/check_style_literals.shFait baisser, jamais monter, le nombre de littéraux bruts de couleur / taille de police dans les exemples (les échappements ui.arb sont permis)
bash scripts/switch_icon_set.sh lucideLance test-headless et le build storybook avec un jeu d'icônes, sans toucher au worktree

Vérification du bundle

Les bundles d’exemple sont signés ad hoc et leur attribut quarantine est supprimé. Ces commandes vérifient la signature et listent les attributs étendus restants.

Terminal
zig build hello-button
codesign --verify --deep --strict "zig-out/Hello Button.app"
xattr -lr "zig-out/Hello Button.app"
zenit · Double licenceGratuit pour les projets open source sous GPL-3.0-only ; les produits propriétaires ou commerciaux nécessitent une licence commerciale.Contacter l’auteur : zongyi.xzy#gmail.com (remplacez # par @)zenit 5f9add5+wip 2026-09-30