NewsJavaScriptDeveloper ToolsProgramming Languages

tsrs Ships: Cloudflare Ports the TypeScript Compiler to Rust

tsrs Rust port of TypeScript compiler by Cloudflare and VoidZero

Cloudflare and VoidZero shipped tsrs today: a Rust port of the TypeScript type checker that runs inside Cloudflare Workers via WebAssembly. It checks the VS Code codebase 18x faster than TypeScript 7.0 and uses a third of the memory. It is not a fork. You can install it right now with a single npm command.

The speed headline will grab attention. But the speed is not the story.

TypeScript 7.0 Was Already Fast. Why Rewrite It Again?

In July 2026, Microsoft rewrote tsc in Go. TypeScript 7.0 dropped build times 10x — the VS Code codebase went from 77 seconds to 7.5 seconds. It was already a native binary with no Node.js overhead. We covered that milestone here.

So why does a Rust port exist two months later? Because Go’s garbage collector has to ship inside every WebAssembly binary. That makes WASM builds large and slow to initialize. Rust has no GC — the WASM guest-host memory interaction stays clean and lean. tsrs compiles to WebAssembly and runs inside Cloudflare Workers, in your browser, or anywhere a WASM runtime exists. The Go compiler cannot do that cleanly.

This unlocks genuinely new use cases: type checking at the edge, browser-based type checking tools, CI runners that do not require a full Node or Go runtime.

The Real-World Problem It Solves

Max Schwenk at Owner.com — the engineer who built tsrs before Cloudflare and VoidZero adopted it — was not running academic benchmarks. Owner’s backend monolith has roughly 37,000 TypeScript files. A single-threaded check on TypeScript 7.0 consumed 19 GiB of memory and took 80 seconds. That is a real CI bill and a developer experience problem.

tsrs is now joining the Oxc toolchain (oxlint, Rolldown) under oxc-project/tsrs. Cloudflare and VoidZero are co-developing it with direct TypeScript team involvement. Their stated position: “We are not forking TypeScript. The TypeScript team should remain in full control of the language’s design and direction.”

The Numbers — and the Fine Print

Vendor benchmarks claim:

  • Up to 8x faster type checking than TypeScript 7.0, using 70% less memory (at equal checker counts)
  • On the VS Code codebase: 18x faster, one-third the memory, 1.6x faster than bun check

Here is the fine print: TypeScript 7.1 beta is already 2.5x faster than 7.0, partly because the tsrs team upstreamed their optimizations back to Microsoft. The gap narrows as the upstream improves. These are early benchmarks from an experimental project, not production-verified numbers.

Try It Today

tsrs is a drop-in replacement for tsc --noEmit in CI:

npm install --save-dev tsrs
npx tsrs -p . --noEmit

For browser or Cloudflare Workers usage, install the WASM package:

npm install @tsrs/wasm

The @tsrs/wasm package is currently single-threaded with a 4 GiB memory cap per instance. Functional, but not production-hardened. Current gaps: no watch mode, no language server — it cannot replace your editor’s TypeScript integration yet. The roadmap targets a stable release against TypeScript 7.1 with 100% conformance, followed by LSP support.

The Theo Subplot

Two weeks ago, Theo Browne shipped ts-rust (tsc-rs) — his own competing Rust TypeScript compiler port, built using roughly $24,000 of Claude tokens over weeks of agent work. He accidentally deployed it to T3 Code’s production, it ran for 8 hours without issues, and he kept it. Today he conceded that tsrs is the stronger implementation. His project is being folded in; Cloudflare and Theo are working on a merged package that adds LSP support.

There is a recursive quality to this. AI agents built both tsrs and ts-rust. The primary beneficiary of faster TypeScript checking is AI coding agents that need rapid type feedback on the code they generate. The tool was built by the thing it will accelerate. Read the New Stack writeup on how agents were used in development — it is worth your time.

What Developers Should Do Now

If TypeScript type checking is a CI bottleneck, swap tsc --noEmit for npx tsrs --noEmit and measure. The worst outcome is a slower run and an easy revert. If you are building edge tooling — browser IDEs, Workers-based linters, edge-deployed code review — read the full Cloudflare announcement. The WASM path is what makes tsrs architecturally different from anything that came before it.

For everyone else: watch the Oxc roadmap. When tsrs ships an LSP, it will reach your editor.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:News