Hasta 8 veces más rápido y un 70 % menos de memoria que TypeScript 7.0, con el mismo número de hilos de comprobación de tipos. Son las primeras cifras de tsrs, el port a Rust del compilador de TypeScript que Cloudflare, VoidZero y Max Schwenk (Owner.com) presentaron el 20 de octubre de 2026. Ese mismo día Microsoft publicó la beta de TypeScript 7.1, su compilador en Go, con mejoras de hasta 1,9x en sus propias pruebas. La pregunta para quien mantiene un monorepo en TypeScript es si merece la pena mirar ya fuera del compilador oficial.
Qué es tsrs
tsrs es un port fiel del compilador de TypeScript 7 (tsc) y de su servidor de lenguaje, escrito en Rust e incubado dentro de Oxc, la cadena de herramientas de la que ya salen Oxlint y Oxfmt. Tiene licencia Apache-2.0 y su código está en oxc-project/tsrs.
Cloudflare insiste en que no es un fork: el equipo de TypeScript sigue decidiendo el lenguaje y tsrs se compromete a seguir su implementación al pie de la letra. Lo hace en colaboración con ese equipo, y algunas optimizaciones de tsrs ya se han subido al compilador en Go.
Hay dos detalles que explican por qué aparece ahora:
- La IA lo ha hecho viable. Según Cloudflare, de todos los intentos de portar TypeScript solo había cuajado el de Microsoft a Go, pero los modelos de frontera ya pueden hacer ports de este tamaño casi solos en cuestión de días. El mantenimiento también será con agentes: agentes que revisan cada día los cambios del repositorio oficial, abren issues y proponen el arreglo cuando la batería de pruebas detecta una diferencia. Es el mismo proceso que usan con Vinext frente a Next.js.
- El objetivo es WebAssembly, no solo la velocidad. Un programa en Go compilado a Wasm arrastra su recolector de basura; Rust no. Con un compilador de TypeScript pequeño en memoria, Cloudflare quiere ejecutar entornos de desarrollo completos dentro de Workers, en el navegador o en dispositivos embebidos, y usarlo para reglas de lint con información de tipos en Oxlint.
Cómo probarlo
El paquete está en npm como experimental. La última versión, publicada el 19 de octubre de 2026, es 0.18.0-ts7.1.0-dev.20260929: el sufijo indica la versión de TypeScript de la que parte el port.
npm install tsrs
npx tsrsPara comparar con lo que trae Microsoft, la beta de 7.1 se instala junto al proyecto:
npm install -D typescript@beta
npx tsc --noEmitLo útil es lanzar los dos sobre el mismo repositorio con --noEmit y comparar tiempo, memoria y, sobre todo, los diagnósticos que devuelve cada uno.
Las cifras, puestas en su sitio
Las comparativas entre ports de TypeScript se han llenado de números difíciles de reproducir, y Cloudflare lo reconoce: muchas usan máquinas más grandes u opciones distintas de las de serie. Por eso dice haber pactado con el equipo de TypeScript que sus pruebas comparen la misma configuración. Aun así, conviven tres saltos distintos que no hay que mezclar:
- TypeScript 7.0 frente a 6: el paso de JavaScript a Go dejó el compilador, según Microsoft, en torno a 10 veces más rápido.
- TypeScript 7.1 beta frente a 7.0: con 4 hilos y
--noEmit, Microsoft mide entre 1,2x (bluesky, vscode) y 1,9x (mui-docs), y entre un 16 % y un 50 % menos de memoria. En la gráfica de Cloudflare la mejora llega a 2,5x. - tsrs frente a 7.0: hasta 8x y un 70 % menos de memoria con los mismos hilos. De serie, tsrs usa una configuración adaptativa según la máquina que gasta más memoria a cambio de ir aún más rápido.
Es decir: la comparación justa de tsrs es contra 7.0, y la versión que vas a tener en un mes es 7.1, que ya recorta parte de la distancia.
tsrs frente a TypeScript 7.1
| tsrs | TypeScript 7.1 beta | |
|---|---|---|
| Lenguaje | Rust | Go |
| Quién lo mantiene | Oxc (VoidZero), Cloudflare, Max Schwenk | Equipo de TypeScript (Microsoft) |
| Estado | Experimental, 0.18.0 | Beta; RC en un mes aproximadamente y final poco después |
| Rendimiento | Hasta 8x frente a 7.0 | 1,2x–1,9x frente a 7.0 |
| Memoria | ~70 % menos que 7.0 | 16 %–50 % menos que 7.0 |
| API para herramientas | API JS de TypeScript 7, inestable | API nueva con typescript/sync, typescript/async, typescript/ast… |
| WebAssembly | Objetivo de diseño | No es su foco |
| Compatibilidad | Diferencias conocidas, como el orden de los diagnósticos | Es la referencia |
| Licencia | Apache-2.0 | Apache-2.0 |
Dónde gana tsrs y dónde pierde
Gana en lo que mide: tiempo de comprobación y memoria. En un pipeline de CI que corre tsc --noEmit sobre un monorepo grande, la memoria es a menudo lo que obliga a usar runners más caros, y un 70 % menos cambia el tamaño de máquina que necesitas. También gana si quieres compilar TypeScript donde Go encaja mal: un sandbox en Wasm, el navegador, un Worker.
Pierde en todo lo que no es rendimiento. Es un paquete experimental en 0.x, con diferencias reconocidas frente al compilador oficial y una fusión pendiente con tsc-rs, el port de Theo Browne, para cubrir todas las funciones, incluidos el servidor de lenguaje y los content mappers. Tampoco hay todavía una versión estable que siga a 7.1: el sufijo ts7.1.0-dev dice que va un paso por detrás de la beta.
La parte que más me interesa es el modelo de mantenimiento. Sostener un port fiel de un compilador con agentes que replican cada cambio del original es un experimento que, si funciona, servirá para mucho más que TypeScript. Si falla, lo notarás como un error de tipos que tsc no da, o al revés. Ese es el riesgo concreto: que tsrs y tsc no coincidan y tu CI apruebe código que el compilador oficial rechaza.
Veredicto
Para quién sí: equipos con monorepos donde la comprobación de tipos domina el tiempo o la memoria del CI, dispuestos a ejecutarlo como paso adicional junto a tsc y a comparar resultados. Y quien construye herramientas en Wasm o sobre Workers, que es para lo que nace.
Para quién no, todavía: cualquiera que necesite una única fuente de verdad en CI o que dependa del servidor de lenguaje en el editor. Para ellos el movimiento sensato es actualizar a TypeScript 7.1 cuando salga la versión final: es el compilador oficial, mejora entre 1,2x y 1,9x sin cambiar nada y recibe parte de las optimizaciones que salen de tsrs.
Fuentes
- tsrs: a Rust port of TypeScript, Cloudflare blog, 2026-10-20
- Announcing TypeScript 7.1 Beta, TypeScript blog (Microsoft), 2026-10-20
- tsrs: A Rust port of the TypeScript 7 compiler (tsc) and language server, npm, 2026-10-19