Encore: Rust impulsa el rendimiento de apps TypeScript

Fuentes: Encore switches to Rust runtime for TypeScript applications

Encore, un framework inicialmente desarrollado en Go, ha realizado un cambio significativo al adoptar Rust como su runtime para aplicaciones TypeScript. La decisión, que involucró dos años de desarrollo y 67.000 líneas de código, surgió de la necesidad de soportar múltiples lenguajes y mejorar el rendimiento. Inicialmente, se consideró un enfoque de 'sidecar' con Go como runtime y Node.js para TypeScript, pero la latencia introducida por la comunicación entre procesos resultó inaceptable (2-4ms por solicitud).

Rust fue elegido por su seguridad, acceso al ecosistema asíncrono (tokio) para manejar la concurrencia de manera eficiente y la capacidad de evitar la reimplementación de infraestructura para cada lenguaje soportado. El nuevo runtime gestiona el ciclo de vida completo de las peticiones HTTP, la gestión de bases de datos, pub/sub, tracing, y más, liberando al código TypeScript para enfocarse en la lógica de negocio. La arquitectura modular del runtime, basada en 'managers' que se inicializan de forma perezosa, permite la flexibilidad de desplegar la misma aplicación en diferentes entornos simplemente cambiando la configuración del runtime, sin modificar el código de la aplicación ni sus metadatos.