13 novembre 2026
React en entrée, Rust en sortie
Les designers gardent React. Les appareils reçoivent du Rust natif. Comment le Screen Compiler transforme les écrans en code à la compilation, pour qu’il n’y ait aucun navigateur à attaquer sur l’appareil.
Sur cette page
Les interfaces modernes sont conçues en React. Si bien qu’un très grand nombre d’appareils dédiés, du pupitre de commande au distributeur de billets, embarquent un moteur de navigateur entier, l’un des programmes les plus volumineux et les plus attaqués qui soient, pour dessiner quelques boutons et les mots « Touch Start to begin ».
Nous voulions la méthode de design moderne sans le navigateur. Nous avons donc construit le Screen Compiler.
Écrivez l’écran en React
Vos designers et vos développeurs front-end gardent leurs outils : composants, props, design tokens, leur éditeur. Ils écrivent l’écran en TSX (celui-ci est abrégé à partir de l’un des écrans de test du Screen Compiler) :
<Column gap={SPACE_SM} padding={SPACE_LG}>
<Text id="title">Welcome</Text>
<Text>Touch Start to begin.</Text>
<Spacer />
<Button id="start" onPress={onStart}>Start</Button>
</Column>
Livrez du Rust tout simple
À la compilation, sur votre machine ou en CI, le Screen Compiler en fait du Rust pour le runtime d’interface de NoWayOS :
let n1 = b.text("Welcome")?; // welcome.tsx:17:9 <Text>
let n2 = b.text("Touch Start to begin.")?; // welcome.tsx:18:9 <Text>
let n4 = b.spacer(None)?; // welcome.tsx:20:9 <Spacer>
let n5 = b.button("Start", actions::START)?; // welcome.tsx:21:9 <Button>
Chaque ligne renvoie au TSX dont elle vient. L’appareil reçoit ce code et rien d’autre : pas de moteur JavaScript, pas de navigateur, pas de page web à attaquer. Le Screen Compiler lui-même n’est jamais embarqué.
React en entrée, Rust en sortie
Le navigateur reste à la compilation.
À la compilation
Écran en TSXReact, tel que l’écrivent les designers
Screen CompilerExact, ou rien
Du Rust tout simpleRelié à sa ligne de TSX
Hors du sous-ensemble : refusé, avec le fichier, la ligne et la colonne
Sur l’appareil
Runtime d’interface de NoWayOSPas de navigateur. Pas de JavaScript.
Exact, ou rien
Un convertisseur qui devine est un convertisseur auquel on ne peut pas se fier. Le Screen Compiler convertit exactement son sous-ensemble déclaré de TSX, et refuse tout le reste en donnant le fichier, la ligne et la colonne. Il n’approxime jamais. Le Rust qu’il écrit ne contient ni unsafe, ni unwrap, ni panic.
Ensuite, chaque écran converti est dessiné par le moteur de rendu de NoWayOS et comparé, pixel par pixel, à son image approuvée. Si un seul pixel bouge, la compilation le dit.
Où il en est
Le Screen Compiler est en développement : son premier sous-ensemble est construit et le suivant est en cours. Il est open source sous licence MIT, sur GitHub à côté de NoWayOS. Si votre équipe conçoit en React et construit des appareils qui comptent, nous serions heureux de vous lire.