ReactVision desarrolla ViroCore, el motor nativo de renderizado
AR/VR detrás de @reactvision/react-viro en iOS, Android, Meta
Quest y visionOS. Es una base de código C++ grande y de larga vida, del orden
de 2,200+ archivos y ~23 MB de código del motor, repartida entre
las partes que esperarías de un renderizador en tiempo real:
| Subsistema | Escala |
|---|---|
| Renderizador | ~800 archivos |
| Física | ~480 archivos |
| Grafo de escena | ~110 archivos |
| Imagen / textura, materiales, iluminación, texto, partículas | el resto |
Se distribuye a teléfonos y visores, donde la memoria es el recurso escaso: cada buffer de textura, nodo del grafo de escena y asignación por frame cuenta. Las rutas críticas y sensibles a la memoria (preprocesamiento de imagen y textura, el grafo de escena, la física) son justo el tipo de código nativo donde la forma de asignar memoria decide el footprint.
El equipo no quería reescribir el motor, ni cambiar el control de C++ por un lenguaje con recolector de basura o un runtime pesado. El perfil de Eskiu encajaba con esas restricciones:
alloc<T>(N)
/ free(ptr) viven en el código. El patrón de asignación de un
componente migrado es explícito y auditable, no oculto tras un
framework.match,
async/await, templates: ergonomía de lenguaje actual sin renunciar
a la capa de sistemas.Selectivo, no una reescritura: tomas un componente C++ sensible a la memoria, lo reimplementas como un módulo Eskiu explícito y lo enlazas por el ABI de C. El motor de alrededor no cambia; ve los mismos símbolos. Cada módulo migrado es lo bastante chico para auditarse y medirse por sí solo, así que la ganancia de footprint es atribuible. En los módulos movidos hasta ahora: ≈85% menos memoria.
El otro extremo del stack validó el mismo toolchain. El
decodificador de QR de credencial del INE de Eduardo, un
proyecto personal, un pipeline real de imagen más cripto (extracción de QR,
luego múltiples rondas de AES-256-CBC + RSA-8192), fue reimplementado en Eskiu y
se sirve como una API HTTP. En el pipeline criptográfico corre
2.5× más rápido que la implementación de referencia en C, sobre un
stack construido enteramente con la biblioteca estándar de Eskiu (<http>,
<json>, <base64>, hilos), sin
framework externo.
Así que el mismo lenguaje que arranca un kernel ARM64 bare-metal, y que mete un módulo ajustado en memoria dentro de un motor de renderizado C++, también corre un servicio en la nube. Un solo lenguaje a lo largo del stack, usado donde de verdad rinde.