NoWayOS
DE
GitHub
MenüSchließen

13. November 2026

React rein, Rust raus

Designer behalten React. Geräte bekommen natives Rust. Wie der Screen Compiler Screens zur Build-Zeit in Code verwandelt, sodass auf dem Gerät kein Browser ist, den man angreifen könnte.

Moderne Oberflächen werden in React entworfen. Deshalb liefern sehr viele dedizierte Geräte, vom Bedienfeld bis zum Fahrkartenautomaten, eine komplette Browser-Engine aus, eines der größten und am häufigsten angegriffenen Programme überhaupt, um ein paar Schaltflächen und die Worte „Touch Start to begin“ zu zeichnen.

Wir wollten den modernen Design-Workflow ohne den Browser. Also haben wir den Screen Compiler gebaut.

Den Screen in React schreiben

Ihre Designer und Frontend-Entwickler behalten ihre Werkzeuge: Komponenten, Props, Design-Tokens, ihren Editor. Sie schreiben den Screen in TSX (dieser hier ist gekürzt aus einem der Test-Screens des Screen Compilers):

<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>

Schlichtes Rust ausliefern

Zur Build-Zeit, auf Ihrem Rechner oder in der CI, macht der Screen Compiler daraus Rust für die UI-Laufzeit von 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>

Jede Zeile verweist auf das TSX zurück, aus dem sie stammt. Das Gerät bekommt diesen Code und sonst nichts: keine JavaScript-Engine, keinen Browser, keine Webseite, die sich angreifen ließe. Der Screen Compiler selbst wird nie ausgeliefert.

React rein, Rust raus

Der Browser bleibt beim Build zurück.

Zur Build-Zeit

  1. Screen in TSXReact, wie Designer es schreiben

  2. Screen CompilerExakt oder gar nicht

  3. Schlichtes RustBis zur TSX-Zeile rückverfolgbar

Außerhalb der Teilmenge: abgelehnt, mit Datei, Zeile und Spalte

Auf dem Gerät

UI-Laufzeit von NoWayOSKein Browser. Kein JavaScript.

Der Screen Compiler läuft zur Build-Zeit und wird nie ausgeliefert. Ein Bild des Ablaufs.

Exakt oder gar nicht

Ein Konverter, der rät, ist ein Konverter, dem Sie nicht trauen können. Der Screen Compiler konvertiert seine deklarierte Teilmenge von TSX exakt und lehnt alles andere ab, mit Datei, Zeile und Spalte. Er nähert nie an. Das Rust, das er schreibt, enthält kein unsafe, kein unwrap und kein panic.

Dann wird jeder konvertierte Screen vom Renderer von NoWayOS gezeichnet und Pixel für Pixel mit seinem freigegebenen Bild verglichen. Bewegt sich ein einziges Pixel, sagt der Build es.

Wo er steht

Der Screen Compiler ist in Entwicklung: Seine erste Teilmenge ist gebaut, die nächste ist in Arbeit. Er ist Open Source unter MIT, auf GitHub neben NoWayOS. Wenn Ihr Team in React entwirft und Geräte baut, auf die es ankommt, würden wir gern von Ihnen hören.