NoWayOS
ES
GitHub
MenúCerrar

13 de noviembre de 2026

Entra React, sale Rust

Los diseñadores conservan React. Los dispositivos reciben Rust nativo. Cómo el Screen Compiler convierte las pantallas en código durante la compilación, para que en el dispositivo no haya ningún navegador que atacar.

Las interfaces modernas se diseñan en React. Por eso muchísimos dispositivos dedicados, desde paneles de control hasta máquinas de billetes, incluyen un motor de navegador entero, uno de los programas más grandes y más atacados que existen, para dibujar unos pocos botones y las palabras «Touch Start to begin».

Queríamos el flujo de diseño moderno sin el navegador. Así que construimos el Screen Compiler.

Escriba la pantalla en React

Sus diseñadores y desarrolladores de front-end conservan sus herramientas: componentes, props, tokens de diseño, su editor. Escriben la pantalla en TSX (esta está abreviada a partir de una de las pantallas de prueba 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>

Entregue Rust sin más

Durante la compilación, en su máquina o en CI, el Screen Compiler lo convierte en Rust para el runtime de interfaz de usuario 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>

Cada línea remite al TSX del que procede. El dispositivo recibe ese código y nada más: ni motor de JavaScript, ni navegador, ni página web que atacar. El propio Screen Compiler nunca se entrega con el dispositivo.

Entra React, sale Rust

El navegador se queda en la compilación.

Durante la compilación

  1. Pantalla en TSXReact, como lo escriben los diseñadores

  2. Screen CompilerExacto, o nada

  3. Rust sin másTrazado hasta su línea de TSX

Fuera del subconjunto: rechazado, con su archivo, línea y columna

En el dispositivo

Runtime de interfaz de NoWayOSSin navegador. Sin JavaScript.

El Screen Compiler se ejecuta durante la compilación y nunca se entrega. Una imagen del recorrido.

Exacto, o nada

Un conversor que adivina es un conversor del que no se puede fiar. El Screen Compiler convierte con exactitud su subconjunto declarado de TSX y rechaza todo lo demás indicando el archivo, la línea y la columna. Nunca aproxima. El Rust que escribe no tiene unsafe, ni unwrap, ni panic.

Después, el renderizador de NoWayOS dibuja cada pantalla convertida y la compara, píxel a píxel, con su imagen aprobada. Si se mueve un solo píxel, la compilación lo dice.

En qué punto está

El Screen Compiler está en desarrollo: su primer subconjunto está construido y el siguiente está en marcha. Es de código abierto bajo licencia MIT, en GitHub junto a NoWayOS. Si su equipo diseña en React y construye dispositivos que importan, nos gustaría saber de usted.