Repolode
pingdotgg

pingdotgg/ts-rust

An experimental Rust port of the TypeScript 7 compiler (tsc), with the same CLI, language server and API, plus built-in Effect diagnostics.

Stars
1,377
Forks
92
Open issues
20
Last commit
8 hours ago

What is it?

ts-rust is a Rust port of Microsoft's native TypeScript compiler, which is written in Go. It keeps the Go implementation's algorithms and behavior and offers the same command line (tsc), language server and API. It is installed from npm as the tsc-rs package so it does not clash with the typescript package, and standalone archives are published per platform.

The project is pinned to a specific upstream TypeScript revision and aims for output identical to the pinned tsc 7. It includes the Effect language service diagnostics, enabled when a tsconfig lists the @effect/language-service plugin. Several opt-in switches, such as --fast and --checkers N, trade CPU and memory for speed. The project is early-stage and labeled experimental.

The repository also includes benchmarks against tsc 6, tsc 7 and Bun on real open-source apps, along with known differences in monorepo resolution and tsc -b timing.

Key features

  • 01Drop-in replacement for the tsc command line with the same options.
  • 02Language server and API matching the Go implementation's behavior.
  • 03Built-in Effect language service diagnostics and editor features.
  • 04Opt-in --fast mode that runs multiple checkers in parallel.
  • 05Prebuilt binaries for Linux, macOS and Windows, distributed via npm.

Use cases

  • Speeding up full type checks in large TypeScript monorepos.
  • Running TypeScript type checks in CI where compile time matters.
  • Type checking Effect-based projects without a second compiler pass.

Quick start

  1. 1

    Install the package from npm

    npm install -D tsc-rs
  2. 2

    Type-check your project with the tsconfig

    npx tsc-rs -p tsconfig.json

Things to know

  • The README calls it an early release and says the author has never read the code.
  • Installation is warned to be uncertain, with no guarantee it works.
  • Only Linux, macOS arm64 and some later-release platforms are listed, so support varies by OS.

Topics

FAQ

What is ts-rust?
An experimental Rust port of the TypeScript 7 compiler (tsc), with the same CLI, language server and API, plus built-in Effect diagnostics. ts-rust is a Rust port of Microsoft's native TypeScript compiler, which is written in Go. It keeps the Go implementation's algorithms and behavior and offers the same command line (tsc), language server and API. It is installed from npm as the tsc-rs package so it does not clash with the typescript package, and standalone archives are published per platform.
Is ts-rust free to use? What license does it have?
ts-rust is open source under the MIT license. Check the license terms before using it in commercial products.
Is ts-rust still maintained?
Actively maintained. The last commit to ts-rust was on Oct 20, 2026.
What can I use ts-rust for?
Speeding up full type checks in large TypeScript monorepos. Running TypeScript type checks in CI where compile time matters. Type checking Effect-based projects without a second compiler pass.
How do I install ts-rust?
Install the package from npm: npm install -D tsc-rs Type-check your project with the tsconfig: npx tsc-rs -p tsconfig.json
Where can I get ts-rust?
The source code and installation instructions are on GitHub: https://github.com/pingdotgg/ts-rust

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects