Cloudflare y VoidZero lanzan tsrs, un port de TypeScript a Rust

Fuentes: Cloudflare and VoidZero introduce tsrs, a TypeScript port to Rust

Cloudflare y VoidZero han anunciado la colaboración con Max Schwenk de Owner.com para desarrollar tsrs, un port del compilador TypeScript a Rust. Este proyecto, incubado dentro de la cadena de herramientas Oxc, busca mejorar la velocidad y la eficiencia de memoria del compilador, permitiendo entornos de desarrollo más rápidos y accesibles, incluso en navegadores web. A diferencia de un fork, tsrs se mantiene estrictamente alineado con la implementación original de TypeScript, garantizando la compatibilidad total con el lenguaje.

Los primeros benchmarks indican que tsrs es hasta 8 veces más rápido y consume aproximadamente un 70% menos de memoria que la versión 7.0 de TypeScript, utilizando la misma cantidad de trabajadores de verificación de tipos. Esta mejora se alinea con las optimizaciones de la versión 7.1 beta, algunas de las cuales fueron contribuidas desde tsrs. La elección de Rust se debe a sus ventajas en la gestión de memoria y su capacidad para ejecutarse en WebAssembly, lo que permite una interacción eficiente entre el sistema anfitrión y el cliente. Cloudflare ya soporta Rust nativo en sus Workers mediante Emscripten, lo que facilita la ejecución de sistemas de desarrollo encapsulados en entornos restringidos.

Para mantener la estabilidad, Cloudflare está trabajando con Theo Browne para fusionar tsrs con tsc-rs, un proyecto existente. Se aplicará un proceso de mantenimiento similar al utilizado para Vinext, donde agentes de IA revisan los cambios diarios y se regeneran matrices de compatibilidad. El objetivo es minimizar las diferencias con la versión upstream de TypeScript y contribuir con mejoras de rendimiento al código base de Go de TypeScript. Cloudflare, que cuenta con más de 10 millones de desarrolladores, busca integrar tsrs en su stack, incluyendo reglas de linting conscientes de tipos en Oxlint, manteniendo el proyecto como una herramienta de código abierto saludable y sin interferir en la dirección del diseño de TypeScript.