Cloudflare, VoidZero e Max Schwenk anunciaram tsrs, um port experimental em Rust do compilador TypeScript, desenvolvido em colaboração com o TypeScript team. O projeto está incubado dentro da toolchain Oxc e não constitui um fork, com o TypeScript team mantendo controle total sobre o design da linguagem.

Imagem: InfoQ. Benchmark da Cloudflare comparando tsrs contra TypeScript 7.0 com o mesmo número de checker workers
A Cloudflare divulga ganhos significativos de desempenho. A empresa afirma até 8x mais velocidade em type checking e aproximadamente 70% menos consumo de memória comparado a TypeScript 7.0 com o mesmo número de checker workers. Um desenvolvedor independente mediu 5.3x mais rápido e 72% menos memória em teste com pacotes npm, com diagnósticos idênticos e emit byte-identical. Porém, ImportStatic mediu contra TypeScript 7.1 beta um ganho menor de 2.7x, indicando que o benchmark de 8x é referenciado contra a versão 7.0 mais antiga.
A implementação utilizou inteligência artificial na geração do código. Max Schwenk explicou que não escreveu código manualmente, direcionando agentes liderados por Claude Opus 5.5 para produzir um port fiel, utilizando os 15.197 conformance cases do próprio TypeScript como especificação. Na prática, Owner.com experimentou redução drástica: uma verificação que consumia 19 GiB e 80 segundos em TypeScript 7.0 caiu para 7 segundos em seu monolito de 37 mil arquivos.
O Rust desbloqueia capacidades específicas. Através de @tsrs/wasm, tsrs compila para WebAssembly, permitindo executar verificações em navegador ou Cloudflare Workers sem inserir um garbage collector no bundle, diferentemente de binários Go.
Para usar, desenvolvedores instalam via npm e apontam para um tsconfig existente:
npm install -D tsrs
npx tsrs -p . --noEmit
Daniel Rosenwasser do TypeScript team respondeu que parte da velocidade "não depende apenas da escolha de linguagem", e algumas otimizações descobertas em tsrs estão sendo incorporadas ao TypeScript 7.1. Peter Steinberger reportou em X ganho de aproximadamente 5x após migração para tsrs.
Existem limitações e incompatibilidades. tsrs ainda carece de watch mode e language server. Os flags --init e --showConfig não são suportados. Um desenvolvedor identificou que tsrs sai com código de erro 2 em type errors, enquanto tsc usa código 1, suficiente para quebrar silenciosamente scripts de CI. A ordem de diagnósticos pode diferir do TypeScript original.
O projeto contextualiza-se num ecossistema de alternativas. Microsoft desenvolveu tsgo, um port em Go do compilador. Theo Browne criou tsc-rs, um port rival em Rust. Cloudflare planeja mesclar tsc-rs e tsrs em um único pacote, adicionando suporte a language server e content mapper.
tsrs rastreia TypeScript 7. Equipes ainda em TypeScript 5 ou 6 devem primeiro adotar o port Go nativo da Microsoft, após o qual migrar para tsrs reutiliza o tsconfig existente. O projeto é open source sob licença Apache-2.0 e disponível no GitHub. A iniciativa permanece experimental, com documentação de compatibilidade fornecendo detalhes adicionais.










