Theo Browne shipped a 1.3-million-line Rust port of the TypeScript compiler last week. He has never read a single line of it. The project, ts-rust (also called tsc-rs), passes all 181,711 tests ported from TypeScript 7’s Go compiler and runs 1.61x faster than tsc 7 on real-world codebases — and 11.4x faster than the original JavaScript-based tsc 6. Claude Opus 5.5 did the work in two weeks for roughly $24,000.
Two Weeks, $24K, and a Compiler Nobody Has Read
Browne, founder of Ping Labs, spent five months trying to crack this with OpenAI’s Codex models. He burned through roughly $400,000 in API tokens and got a codebase that reached only 84% test compatibility before stalling. He switched to Claude Opus 5.5. The first working version appeared in ten hours. Two weeks later, he had a complete port. The README is blunt: “I’ve never read a line of this code.”
That admission will make some engineers deeply uncomfortable — and it should prompt a serious question rather than dismissal. ts-rust is a port, not a rewrite with novel logic. It faithfully translates Microsoft’s typescript-go into Rust, algorithm for algorithm. The result has been validated against 120 open-source repositories and produces identical diagnostics to the Go version on TanStack Query and Hono. When five issues were filed on GitHub, four turned out to be bugs in the official upstream Go compiler — not in ts-rust. The AI wrote the port so faithfully it reproduced Microsoft’s bugs too.
The Numbers
Raw performance data on real projects:
- T3 Code project: 7.25 seconds (tsc-rs) vs. 16.10 seconds (tsc 7 Go) — 2.22x faster
- VS Code codebase (3.75M lines): 4.20 seconds vs. 6.84 seconds (tsc 7) — 1.63x faster
- Geometric mean across real-world apps: 1.61x faster than tsc 7, 11.4x faster than tsc 6
Community reports in the issue tracker mention CI type-check pipelines dropping from 88 seconds to 24 seconds. If your project runs tsc on every pull request, that is a meaningful cost reduction on whatever cloud build runners you are paying for.
How to Try It
The install is a single npm line. tsc-rs accepts the same flags as tsc:
npm install -D tsc-rs
npx tsc-rs -p tsconfig.json
To replace tsc in your scripts, swap tsc for tsc-rs in package.json. The compiler keeps the same CLI, language server, and API surface. Your existing tsconfig.json stays unchanged.
Why Rust Specifically
Speed is the obvious answer but not the most interesting one. TypeScript 7’s Go compiler cannot cleanly compile to WebAssembly — Go’s runtime carries too much overhead for the constraints of a browser sandbox. Rust can. That means ts-rust can run as a WASM binary inside V8 isolates, enabling full TypeScript type checking in browser-based development environments without a separate server. Projects are already using it this way — running ts-rust in a 128 MiB isolate with peak memory around 68 MiB. This is the longer-term value beyond shaving seconds off CI.
Who Should Wait
The experimental label is accurate. Pre-built binaries exist for Linux x64 and macOS arm64. Windows support is not available yet, and neither is Linux arm64. Watch mode is missing. The editor LSP leaks a small amount of memory in long sessions (around 20 MiB per 1,000 edits). These are real limitations for teams that need a stable daily driver. The caveats are worth reading before you commit to this in a monorepo with complex rootDir configurations.
If you are on Linux or macOS and want to benchmark your CI pipeline, drop in tsc-rs and run the numbers. The performance gains are real. The test coverage is unusually thorough for a two-week-old project. And when Windows support lands, this will be the obvious first thing to check when you want to cut your build time again.













