the short version
- The README reports that all 181,711 tests ported from Microsoft's Go compiler pass. It does not break that figure down by conformance versus checker tests.
- Claude Opus 5.5 rewrote the port from scratch in about 2 weeks for about $24,047 of API-priced tokens. Before that, OpenAI models spent over $400,000 and stalled near 84% compatibility.
- tsc-rs is on npm now as a drop-in tsc, but only for Linux x64 and macOS arm64. It is pinned to a TypeScript 7.1.0-dev revision, not a stable release.
- On six real-world apps it ran 1.61x faster than tsc 7 by geometric mean. bun check ran 2.95x faster but lacks Effect diagnostics and reports some extra errors.
ts-rust is an experimental, LLM-written Rust port of Microsoft's TypeScript 7 compiler, checker and language server. It reports that all 181,711 tests ported from the Go compiler pass, and that its language server and API answers match Go on the oracle test sets. The working port was written from scratch by Claude Opus 5.5 over about 2 weeks and verified against Go at a pinned upstream revision. On 60 open-source projects it type checks in about half of Go's time (geometric mean). It ships on npm as tsc-rs, takes the same options as tsc, and runs on Linux x64 and macOS arm64 only.
The repository is pingdotgg/ts-rust, and its author says he has never read a line of the code. It has 6,002 commits and an MIT license. The README is split by what the author calls the slop line: everything below it was written by the LLMs. The project is a direct port of Microsoft's native compiler (microsoft/TypeScript, formerly typescript-go), keeps Go's algorithms and behavior, and measures parity against Go at a pinned revision rather than against tsc 6.
What the ts-rust test numbers cover
The headline figure is 181,711 ported Go tests passing. The README does not say how those divide between TypeScript's conformance cases, compiler baselines, checker tests or language server tests. The share of the conformance suite specifically therefore cannot be read from the sources. What the README does state is the scope of the parity claims around that number.
- Go baseline tests run against a local checkout of the Go repository, via TS_GO_REPO, in a go_baselines test target.
- TanStack Query core and Hono check with diagnostics identical to Go's.
- On 120 open-source repos, command-line output differs from Go's only in the listed known problems and where Go's own output varies from run to run.
- Language server and API answers match Go on the oracle test sets. The README does not say how large those sets are.
- The earlier OpenAI-driven attempt never got past roughly 84% compatibility, according to the author.
How Opus 5.5 drove the port
The first attempt used OpenAI's GPT-5.6 Sol and GPT 6 Astra over multiple months of /goal loops. Those models wrote over 1.3 million lines of Rust and used over $400,000 in API-priced tokens. The author noticed how little of his Claude Code limits he was using, so he tried Claude Opus 5.5. It produced a working v0 in 10 hours. He had assumed it would reuse the Codex output, but it started from scratch.
Total spend for the Opus run was about $24,047 at API prices over 2 weeks. It ran on the author's Claude accounts and came to between 925% and 983% of his $200 plan's weekly limits. The repository contains AGENTS.md with typechecker work rules, accountability rules and a saved state, crates/ts_goport/PORTING.md with port rules, and measurement and gate scripts in scripts/goport. It also contains recommendations.md, ts-rust-recovery-plan.html and docs/history.md, and the README does not explain how the first two were used.
It got further than Astra in 1/10th the time.
How behavior is pinned and verified against Go
The port is pinned to one upstream revision, microsoft/TypeScript 673a5f17d713 from 2026-09-29, which is TypeScript 7.1.0-dev. Comparisons should use typescript@7.1.0-dev.20260929.1, not 7.0.x or @typescript/native-preview. Any difference that this Go build also shows counts as upstream behavior. This matters in practice: on VS Code and Sentry, tsc-rs reports 10 and 2 errors that tsc 7.0.2 does not, and TypeScript 7.1.0-dev reports the same errors line for line. The build and verification entry points are:
./scripts/run-cargo-capped.sh build --release -p ts_goport --bins
./scripts/verify.sh
TS_GO_REPO=/path/to/typescript-go ./scripts/run-cargo-capped.sh test -p ts_goport --test go_baselinesCan tsc-rs replace tsc 7 today?
The author claims 100% compatibility on every real-world project tested and calls tsc-rs a drop-in replacement for the vast majority of apps, but also writes that he has no idea if install will actually work. Benchmarks of tsc-rs 0.1.0 put it at 1.61x faster than tsc 7 across six apps, with VS Code at 4.20s versus 6.84s and T3 Code at 7.25s versus 16.10s. bun check is 2.95x faster than tsc 7 but reports errors that no other checker reports: 3 on Sentry and 2 on tRPC. With Effect diagnostics built in (codes 377xxx, ported from Effect-TS/tsgo 0.46.1), tsc-rs checks T3 Code in 11.13s, against 21.07s for tsc 7 plus @effect/tsgo. The constraints to weigh before building on it:
- There are no Windows or Linux arm64 builds yet. Preview packages are built without PGO and BOLT, so they run slower than the measured build.
- In some monorepos it can write output for more files than tsc and report TS6059. Where tsc's result varies by timing, tsc-rs gives the TypeScript 6 result every time.
- In tsc -b, when one project imports another's output without a project reference, it can read stale or missing output (TS2305 or TS2307) in several cases. Adding the reference fixes it.
- Editor memory grows about 20 MiB per 1,000 edits. It starts 12 to 24% above tsc's and stays below tsc's from about edit 20 in the measured sessions.
- tsc-rs --version prints 7.1.0-dev rather than the npm version, and typesVersions matching uses that version.
- The Effect language service's editor features, such as quick fixes, refactors, hover and completions, are not ported.
For tooling authors, the relevant pieces are the crates/ts_wasm WebAssembly build and the README's claim that the port has the same API as Go. WASM performance is a stated motivation, but the sources give no WASM benchmarks. The license is MIT, with retained Apache-2.0 notices for TypeScript code and BSD-3-Clause notices for parts of the Go standard library.
What Hacker News commenters push back on
Commenters on Hacker News argued that the $400,000 figure is an API-price estimate for subscription usage, and that cost should mean what was actually paid. Others pointed out that the README itself puts the Opus run at about $24k. One commenter asked how much unsafe Rust the port uses. Another replied that a skim of the repository showed none and that avoiding unsafe appears to be an explicit goal, but the sources do not quantify it.
The sharper concern is test coverage. One commenter wondered whether reimplementations verified against human-written tests will have holes where the original authors relied on common sense instead of tests. One reply expected such holes to be fixed within days, and another doubted many remain when there is an original program to compare against. Others doubted the project will be maintained. A commenter identifying as a TypeScript team member said three such ports had appeared in the last week and that the team would have more to say soon.
What the ts-rust sources do not say
The sources do not report a separate pass rate for TypeScript's conformance suite or the size of the oracle sets. On following upstream past the 673a5f17d713 pin, they say only that differences go away when the pin moves. There is no stated maintenance commitment, no WASM performance data and no Windows build. Teams considering tsc-rs as a tsc replacement should watch for a newer pin, broader platform releases and whatever the TypeScript team says in response.
Questions this raises
Can tsc-rs replace tsc 7?
The author calls tsc-rs a drop-in replacement for the vast majority of apps and claims 100% compatibility on every real-world project tested. Known gaps remain: there are no Windows or Linux arm64 builds, there are stale-output cases in tsc -b without project references, and Effect editor features are not ported.
How fast is ts-rust compared to tsc 7?
Benchmarks of tsc-rs 0.1.0 put it at 1.61x faster than tsc 7 across six apps. VS Code checks in 4.20s versus 6.84s, and T3 Code in 7.25s versus 16.10s. Preview npm packages lack PGO and BOLT, so they run slower than the measured build.
Which TypeScript version should I compare ts-rust against?
Compare against typescript@7.1.0-dev.20260929.1, not 7.0.x or @typescript/native-preview. Any difference that this Go build also shows counts as upstream behavior.
Spotted an error? Email samir.s.sengupta@gmail.com and I will correct it and date the change at the top of the note. How these notes are researched, drafted and checked is in the editorial policy.
