tsz

tsz is a TypeScript checker and language service in Rust. It is faster than tsgo. On top of being fast tsz aims to offer a Sound Mode for stricter type-checking.

Work in progress. This project is not ready for general use yet. Many TypeScript features are still being implemented.

Performance

Arithmetic mean across 71 benchmark cases.

tsz
238.6ms
tsgo
255.9ms tsz 1.07x faster

Progress

We run TypeScript's own test suite to ensure tsz can serve as a drop-in replacement - comparing diagnostics, JavaScript emit, declaration emit, and language service behavior against tsc.

Currently targeting TypeScript 6.0.3

Conformance
95.9% - 12,065/12,581
JS Emit
91.1% - 12,324/13,525
Declaration Emit
75.6% - 1,261/1,668
Language Service
100.0% - 6,561/6,562

Some progress metrics are sourced from README fallback because CI artifacts were unavailable. README-derived values may be stale.

Conformance: README fallback | JS Emit: README fallback | Declaration Emit: README fallback | Language Service: README fallback

839,837 lines of Rust across 14 crates

Conformance is measured by diagnostic fingerprint comparison: each diagnostic must match tsc in error code, file, line, column, and message.