Un proyecto de GitHub llamado ts-rust ha circulado estos días entre desarrolladores. Migra por completo a Rust el compilador de TypeScript que Microsoft reescribió en Go, junto con el verificador de tipos y el servidor de lenguaje (LSP); la herramienta de línea de comandos se llama tsc-rs. El mantenedor, pingdotgg, lo dice sin rodeos en la descripción del proyecto: todo el código de implementación fue generado por un modelo de lenguaje grande, y él mismo no ha leído ni una línea.
El proyecto está fijado a una versión upstream de microsoft/typescript-go, correspondiente a TypeScript 7.1.0-dev. Según la documentación, las 181.711 pruebas migradas desde la versión en Go pasaron todas, y en los proyectos reales que el autor probó la compatibilidad llegó al 100%. El repositorio usa licencia MIT, pero conserva los avisos Apache-2.0 de TypeScript y BSD-3-Clause de la biblioteca estándar de Go, y tiene actualmente más de 600 estrellas.
Dos caminos, dos modelos
El autor probó primero con GPT-5.6 Sol y GPT-6 Astra, de OpenAI: el costo de API superó los 400.000 dólares, generando unas 1,3 millones de líneas de Rust, pero la compatibilidad se quedó en 84%. Después cambió a Claude Opus 5.5 y empezó de nuevo desde cero: en 10 horas ya tenía una v0 funcional, y el costo total en dos semanas fue de unos 24.047 dólares.
"I've never read a line of this code."
(Nunca he leído una línea de este código.)
En cuanto a rendimiento, el autor usó su propio proyecto T3 Code como referencia: tsc-rs termina la verificación de tipos en 7,25 segundos, frente a los 16,10 segundos de tsc 7 en Go, un 2,22 veces más rápido. Tomando como base tsc 6 en JavaScript, tsc 7 es 7,1 veces más rápido y tsc-rs, 11,4 veces. Estas cifras provienen todas de pruebas del propio autor, sin reproducción independiente por ahora, y ni OpenAI ni Anthropic se han pronunciado públicamente sobre esta comparación.
En el contexto de proyectos similares
Usar modelos grandes para migraciones de código a gran escala ya ha tenido varios casos públicos este año. GitHub reveló antes que usó Copilot para reescribir uno de sus runtimes en 830.000 líneas de Rust; Mistral usó un agente para migrar 40.000 líneas de Fortran 77 a C++. Lo que tienen en común estos proyectos es contar ya con un conjunto de pruebas amplio que actúa como árbitro.
ts-rust sigue el mismo patrón. La propia portabilidad de Microsoft a Go fue, en esencia, una reescritura archivo por archivo casi “copiada”, y los casos de prueba se trasladaron junto con ella, dando al modelo un objetivo casi totalmente determinista: decenas de miles de pruebas, pasar o no pasar. En tareas con un objetivo tan claro y retroalimentación inmediata, la brecha entre los dos modelos se amplifica mucho. Si esta comparación se sostiene para código de negocio con requisitos difusos y sin red de pruebas, todavía no se puede afirmar.
Limitaciones conocidas
La documentación enumera cuatro limitaciones: en monorepos donde un mismo archivo puede alcanzarse por varias rutas, los archivos de salida pueden ser más que con tsc; en builds incrementales con tsc -b puede leerse un artefacto desactualizado o faltante; en sesiones de edición largas, la memoria crece lentamente, unos 20MB cada 1.000 ediciones; el número de versión que se muestra es el 7.1.0-dev del momento de la migración, no la versión de npm.
El autor lo posiciona como una versión temprana. Para los equipos que quieran probarlo, la vía más segura es correr tsc-rs en paralelo con el tsc oficial en la CI y comparar las salidas de diagnóstico; usarlo directamente para sustituir la cadena de build de producción, sin que nadie haya revisado el código, es un riesgo que cada equipo debe sopesar por su cuenta.
Fuentes: documentación del proyecto ts-rust, CocoLoop, discusión en Hacker News; la documentación del proyecto se cotejó con el número de pruebas, el costo de API y el tiempo y factor del benchmark de T3 Code.