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

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
--incrementaltook 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
- Introducing tsrs: A port of TypeScript to Rust (Oct 20, 2026)
Cloudflare Blog
- tsrs repository and README
Oxc (GitHub)
- Release v0.18.0 (Oct 19, 2026)
Oxc (GitHub)
- TypeScript compatibility
Oxc (GitHub)
- Benchmark results
Oxc (GitHub)
- tsrs on npm
npm
- Tsrs: A Port of TypeScript to Rust
Hacker News
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.
Continue

Tools
Mistral's Voxtral 3 is a full voice-agent stack: it listens, thinks, calls tools and talks back
Voxtral 3 is a new family of Mistral transcription and speech models plus a voice agent SDK built on LiveKit. Transcription starts at $0.0035 a minute and speech costs $13 per million characters. The honest caveat: the speech-quality charts are Mistral's own evals, graded by another AI model.
· MODEL Editors

Tools
Cloudflare's Clairic pulls typed values out of messy text, and charges only for input
Clairic is a preview extraction model on Workers AI. You hand it text or images plus a list of typed fields, and it returns numbers, dates, spans and estimates with confidence scores in one pass. Cloudflare's own advice: it is an early checkpoint, so let your code do the multi-step math.
· MODEL Editors

Builder tip
Stop asking a chatbot to forecast your numbers. A 21 MB model on a CPU does it.
Mistral's Timestral forecasts traffic, sales or sensor data with no GPU. Here is the install, the five lines that matter, how it did on a real series in our test, and the licence clause to read before you ship it.
· MODEL Editors