Issue Nº 01 — October 15, 2026

@readmodelmag
MODEL

Follow MODEL on X @readmodelmag

Tools

tsrs: TypeScript in Rust, timed

SummaryThe new Rust port of the TypeScript compiler checked Playwright's 1,511 files 6.4 times faster than TypeScript 7.0.2 on our box, with two-thirds less memory and the same errors, word for word. The catch: it follows TypeScript 7.1, not the 7.0 you have.

· MODEL Editors · 3 min read

Some links may be affiliate links. Disclosure

Programming source code on a computer monitor.
Source code on a monitor. This is not a tsrs screenshot. Photograph by Markus Spiske, via Wikimedia Commons. CC0. Image source.

tsrs is a port of the TypeScript compiler to Rust. You install it from npm and run it where you'd run tsc: it reads your tsconfig.json, checks your types, and can emit JavaScript and .d.ts files. Cloudflare announced it today with VoidZero, the company behind Vite and the Oxc toolchain, and Max Schwenk of Owner.com, who did the port. Cloudflare says it works "in close collaboration with the TypeScript team" and is "not forking TypeScript". The announcement reached the Hacker News front page this morning.

It is Apache-2.0, like TypeScript, and lives at oxc-project/tsrs on GitHub. Cloudflare calls this an experimental release. The headline claim: up to 8 times faster than TypeScript 7.0, with about 70% less memory, at the same number of checker threads. That's the maker's number, from its own benchmark setup. We didn't repeat it.

The test. MODEL installed tsrs 0.18.0 from npm into a fresh folder on an 8-core Linux box. npm audit signatures verified the package signatures, and the build provenance for both tsrs packages. No account, no key. We ran it against TypeScript 7.0.2, the current release, and against the 7.1 nightly built from the same TypeScript commit tsrs ports. Other jobs shared the box, so treat the timings as a rough guide.

Same answers first. On three projects (Microsoft's Playwright repository, the compiler sample from TypeScript's own benchmark suite, and this website), tsrs printed the same errors as TypeScript, byte for byte, in the same order. Then we planted 12 type errors in our site's code, from a wrong return type to a push on a read-only array. All three compilers caught all 12, with identical messages. JavaScript and .d.ts output for the compiler sample, 120 files, was byte-identical too.

Speed and memory, median of repeated runs:

  • Playwright (1,511 files and about 586,000 lines, counting library and dependency types): 0.24 seconds against 1.54 for TypeScript 7.0.2, 6.4 times faster. Peak memory 384 MB against 1,125 MB. Held to TypeScript's default of 4 checker threads, tsrs was still 5.1 times faster.
  • TypeScript's compiler sample (96,000 lines): 0.10 seconds against 0.38, 3.8 times faster.
  • This website (a small Next.js app): 0.05 seconds against 0.18. That's 3.3 times faster, and also an eighth of a second. You won't notice it on a small project.
  • A no-change re-check of Playwright with --incremental took 0.07 seconds against 0.31.

The catch. tsrs follows a TypeScript 7.1 development build from late September, not the 7.0.2 you get from npm install typescript today. That showed up in our run. With type errors and --noEmit, tsrs exited with code 2 every time, while TypeScript 7.0.2 exited with 1. The 7.1 nightly also exits with 2, so this is a TypeScript change, not a tsrs bug. But a CI script that checks for one exact code could break. It also loads newer built-in library files. The maker's own benchmark says errors differ from 7.0.2 on 8 of 17 projects for the same reason. On our three, they didn't.

It's also early. tsrs --init answered "--init is not supported by tsrs." There's no Windows or Intel Mac binary yet, and the project doesn't accept outside pull requests, only issues.

What we did not test. The editor language server, watch mode, --build with project references, Vue or Svelte files, the WebAssembly build and browser playground, Macs, very large monorepos, and tools such as typescript-eslint that call TypeScript's JavaScript API.

The verdict. If type-checking a big project is slow in CI or on your laptop, tsrs is worth trying today as a second check next to tsc. On Playwright it gave the same answers in a sixth of the time. Don't make it your only check until you've compared its output with the TypeScript version you actually ship on, and check your CI's exit codes.

Disclosure: not sponsored. No affiliate links. MODEL has no relationship with Cloudflare, VoidZero or Owner.com. Full test notes, commands and outputs are kept by MODEL Editors.

Sources

  1. Introducing tsrs: A port of TypeScript to Rust (Oct 20, 2026)

    Cloudflare Blog

  2. tsrs repository and README

    Oxc (GitHub)

  3. Release v0.18.0 (Oct 19, 2026)

    Oxc (GitHub)

  4. TypeScript compatibility

    Oxc (GitHub)

  5. Benchmark results

    Oxc (GitHub)

  6. tsrs on npm

    npm

  7. Tsrs: A Port of TypeScript to Rust

    Hacker News

See the MODEL tool card: tsrs

FREE · EVERY WEEK

The top AI tools this week, tested.

Every week MODEL's editors pick the AI tools worth your time, try them hands-on, and tell you what's good, what's not, and who it's for. Free, in your inbox.

Free. Unsubscribe anytime. Our picks are editorial and can't be bought.

The weekly three is editorial. A subscription does not buy a place in it.