GitHub - oxc-project/tsrs: Rust port of the TypeScript 7 type checker

GitHub

2 min read Original article ↗

npm license

tsrs is a drop-in replacement for the TypeScript 7 compiler and language server, written in Rust. Our goal is 100% conformance, with much lower memory use and faster type checking.

Get started

pnpm add -D tsrs
pnpm exec tsrs --noEmit

You can try tsrs today and give us feedback on performance, memory usage, and conformance.

Conformance

tsrs currently targets the main branch of microsoft/TypeScript. We aim to release a stable version against TypeScript 7.1 with 100% conformance. In our testing on existing projects, we have yet to find a correctness bug in tsrs.

There are known order issues: the pinned Go compiler can produce different diagnostics and traces depending on parallel parse, resolution, and check order, while tsrs canonicalizes some checker history by default. For the closest comparison, use --checkerAssignment go --noLazyMembers; tsgo parser and resolver races can still vary between runs.

--init and --showConfig are not supported. See compatibility and evidence for supported features and known gaps.

Performance

Extra features

@tsrs/wasm provides WebAssembly support targeting wasm32-wasip1 (WASI Preview 1).

Learn more

Contributing

Issues and pull requests are currently disabled until we have the bandwidth to triage them.

See the contributing guide for building from source and running the suites, the Code of Conduct, and security policy for reporting vulnerabilities.

Acknowledgments

We thank the following organizations and contributors:

Depot      Owner.com

We extend special thanks to the TypeScript team for their support.

License

tsrs is a derivative of TypeScript (Copyright Microsoft Corporation), licensed under Apache-2.0. The bundled lib.*.d.ts files are TypeScript's. See NOTICE for attribution. Not affiliated with or endorsed by Microsoft.