NoWayOS
PT
GitHub
MenuFechar

13 de novembro de 2026

Entra React, sai Rust

Os designers continuam com React. Os dispositivos recebem Rust nativo. Como o Screen Compiler transforma telas em código em tempo de build, para que não haja navegador no dispositivo para atacar.

As interfaces modernas são projetadas em React. Por isso, muitíssimos dispositivos dedicados, de painéis de controle a máquinas de bilhetes, levam um motor de navegador inteiro, um dos maiores e mais atacados programas que existem, para desenhar alguns botões e as palavras “Touch Start to begin”.

Queríamos o fluxo de design moderno sem o navegador. Então construímos o Screen Compiler.

Escreva a tela em React

Os seus designers e desenvolvedores de front-end continuam com as suas ferramentas: componentes, props, design tokens, o editor deles. Eles escrevem a tela em TSX (esta foi abreviada de uma das telas de teste do 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>

Entregue Rust puro e simples

Em tempo de build, na sua máquina ou na CI, o Screen Compiler transforma isso em Rust para o runtime de interface do 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>

Cada linha aponta de volta para o TSX de onde veio. O dispositivo recebe esse código e mais nada: sem motor de JavaScript, sem navegador, sem página web para atacar. O próprio Screen Compiler nunca vai para o dispositivo.

Entra React, sai Rust

O navegador fica para trás, no build.

Em tempo de build

  1. Tela em TSXReact, como os designers escrevem

  2. Screen CompilerExato, ou nada

  3. Rust puro e simplesRastreado até a linha do TSX

Fora do subconjunto: recusado, com arquivo, linha e coluna

No dispositivo

Runtime de interface do NoWayOSSem navegador. Sem JavaScript.

O Screen Compiler roda em tempo de build e nunca vai para o dispositivo. Uma imagem do fluxo.

Exato, ou nada

Um conversor que adivinha é um conversor em que não se pode confiar. O Screen Compiler converte com exatidão o seu subconjunto declarado de TSX e recusa todo o resto, informando o arquivo, a linha e a coluna. Ele nunca aproxima. O Rust que ele escreve não tem unsafe, nem unwrap, nem panic.

Depois, cada tela convertida é desenhada pelo renderizador do NoWayOS e comparada, pixel a pixel, com a sua imagem aprovada. Se um único pixel se mover, o build avisa.

Em que pé está

O Screen Compiler está em desenvolvimento: o seu primeiro subconjunto está construído e o próximo está em andamento. Ele é open source sob a licença MIT, no GitHub ao lado do NoWayOS. Se a sua equipe projeta em React e constrói dispositivos que importam, gostaríamos de ouvir você.