NoWayOS
IT
GitHub
MenuChiudi

13 novembre 2026

Entra React, esce Rust

I designer tengono React. I dispositivi ricevono Rust nativo. Come il Screen Compiler trasforma le schermate in codice in fase di build, così sul dispositivo non c'è alcun browser da attaccare.

Le interfacce moderne si progettano in React. Così moltissimi dispositivi dedicati, dai pannelli di controllo alle biglietterie automatiche, si portano dietro un intero motore di browser, uno dei programmi più grandi e più attaccati che esistano, per disegnare qualche pulsante e le parole “Touch Start to begin”.

Volevamo il flusso di design moderno senza il browser. Così abbiamo costruito il Screen Compiler.

Scriva la schermata in React

I Suoi designer e sviluppatori front-end tengono i loro strumenti: componenti, props, design token, il loro editor. Scrivono la schermata in TSX (questa è abbreviata da una delle schermate di test del 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>

Consegni semplice Rust

In fase di build, sulla Sua macchina o in CI, il Screen Compiler lo trasforma in Rust per il runtime dell'interfaccia utente di 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>

Ogni riga rimanda al TSX da cui proviene. Il dispositivo riceve quel codice e nient'altro: nessun motore JavaScript, nessun browser, nessuna pagina web da attaccare. Il Screen Compiler stesso non viene mai consegnato.

Entra React, esce Rust

Il browser resta indietro, alla build.

In fase di build

  1. Schermata in TSXReact, come lo scrivono i designer

  2. Screen CompilerEsatto, o niente

  3. Semplice RustRicondotto alla sua riga di TSX

Fuori dal sottoinsieme: rifiutato, con file, riga e colonna

Sul dispositivo

Runtime dell'interfaccia di NoWayOSNessun browser. Nessun JavaScript.

Il Screen Compiler gira in fase di build e non viene mai consegnato. Un'immagine del flusso.

Esatto, o niente

Un convertitore che tira a indovinare è un convertitore di cui non ci si può fidare. Il Screen Compiler converte con esattezza il suo sottoinsieme dichiarato di TSX e rifiuta tutto il resto indicando file, riga e colonna. Non approssima mai. Il Rust che scrive non ha unsafe, né unwrap, né panic.

Poi ogni schermata convertita viene disegnata dal renderer di NoWayOS e confrontata, pixel per pixel, con la sua immagine approvata. Se si sposta un solo pixel, la build lo dice.

A che punto è

Il Screen Compiler è in sviluppo: il suo primo sottoinsieme è costruito e il successivo è in corso. È open source con licenza MIT, su GitHub accanto a NoWayOS. Se il Suo team progetta in React e costruisce dispositivi che contano, ci farebbe piacere sentirLa.