Todos los artículos

tsrs: un port de TypeScript a Rust, y qué cambia para ti hoy

TypeScript · 4 min de lectura ·

El 20 de octubre de 2026, Cloudflare y VoidZero anunciaron tsrs, un port del compilador de TypeScript a Rust, hecho junto a Max Schwenk de Owner.com e incubado dentro de la cadena de herramientas Oxc. Lo corto, para quien programa a diario: es experimental, no cambia el lenguaje TypeScript y no tienes que cambiar nada esta semana. Lo largo es más interesante, porque dice mucho sobre hacia dónde va la comprobación de tipos.

Un port, no un fork

Los autores lo dejan claro. Escriben que no están haciendo un fork de TypeScript y que el equipo de TypeScript debe mantener el control total del diseño del lenguaje. tsrs sigue las decisiones del equipo en vez de tomar las suyas, y el artículo explica por qué: un port que se aleja del original, según ellos, acaba desmoronándose y volviéndose incompatible.

Eso importa para tu código. Un fork podría, con el tiempo, aceptar programas que el compilador oficial rechaza, o al revés. Un port fiel busca las mismas respuestas, solo que más rápido. Los autores admiten diferencias actuales, por ejemplo el orden en que se imprimen los diagnósticos, y quieren reducirlas al mínimo antes de una versión estable.

Qué dicen los benchmarks

Son cifras de Cloudflare, no mías, y no las he reproducido. Según el artículo, tsrs es hasta 8 veces más rápido y usa alrededor de un 70 % menos de memoria que TypeScript 7.0 con el mismo número de workers de comprobación de tipos. El mismo artículo dice que TypeScript 7.1 beta ya es hasta 2,5 veces más rápido que la 7.0, y que parte de esa mejora salió de tsrs.

velocidad declarada, mismos workers TS 7.0 1x TS 7.1 beta hasta 2,5x tsrs hasta 8x benchmark de los autores, no medido aquí
El largo de las barras sigue los múltiplos declarados. La base es TypeScript 7.0, que ya es el port a Go.

Dos detalles mantienen esto honesto. Primero, los autores recuerdan que los ports suelen publicar cifras grandes usando máquinas más potentes y opciones distintas de las predeterminadas, y dicen que trabajaron con el equipo de TypeScript para comparar la misma configuración. Segundo, tsrs viene por defecto con una configuración adaptativa que usa más memoria para ir aún más rápido, así que lo que instalas no es el ajuste detrás de la cifra de memoria.

¿Por qué Rust, si Go ya lo hizo 10 veces más rápido?

El propio artículo se hace la pregunta. El port oficial de TypeScript a Go ya hizo el compilador 10 veces más rápido que la versión escrita en TypeScript. La respuesta de los autores es WebAssembly. Un programa en Go compilado a Wasm tiene que llevar consigo el recolector de basura de Go. Rust no tiene recolector de basura que enviar, y su modelo de memoria hace sencillo compartir memoria entre un módulo Wasm y su anfitrión.

Go compilado a Wasm compilador recolector de basura Rust compilado a Wasm compilador nada extra que enviar menos memoria en un navegador o un Worker
El argumento a favor de Rust trata de dónde puede ejecutarse el compilador, no solo de su velocidad.

El interés de Cloudflare es evidente: ejecuta sistemas de build en Workers, donde ocupar poca memoria compensa enseguida. Esa misma propiedad podría permitir ejecutar una cadena de desarrollo completa en una pestaña del navegador, o en un dispositivo embebido, sin un servidor detrás.

Qué cambia hoy para un proyecto normal

Muy poco, y está bien así. tsrs es una versión experimental. Si tienes curiosidad, el artículo da exactamente dos comandos:

npm install tsrs
npx tsrs

Como consejo general, yo lo trataría como una segunda opinión, no como un reemplazo. Ejecútalo junto a tu comprobación habitual con tsc en una rama, compara los errores y anota el tiempo. No lo conviertas en el control que bloquea un merge mientras sus propios autores digan que la salida todavía difiere en algunos puntos.

Donde lo notarás primero es en CI. La comprobación de tipos suele ser uno de los pasos más lentos de un pipeline de TypeScript, y cada compilador más rápido lo acorta. La mejora más barata ahora mismo probablemente no sea tsrs, sino pasar a la última versión oficial de TypeScript, ya que el artículo atribuye a la 7.1 beta una mejora grande propia.

tsrs sigue a TypeScript en lugar de competir con él. Pruébalo junto a tsc, deja el compilador oficial como control y actualiza primero TypeScript.

Siguiente paso: mide cuánto tarda hoy tu comprobación de tipos en CI, para tener una cifra real con la que comparar cuando llegue un tsrs estable o la próxima versión de TypeScript. Fuente: blog de Cloudflare, Introducing tsrs: A port of TypeScript to Rust.

Notas de los lectores

  1. Todavía no hay notas. La primera siempre es la más valiente.
¿Estás construyendo algo parecido? Puedo ayudarte. Escríbeme por WhatsApp