Skip to content
oxc-projectPublic

About

Rust port of the TypeScript 7 type checker

Resources

Code of conduct

Contributing

Security policy

Stars

2.5k stars

Watchers

4 watching

Forks

Latest commit

 

History

2,048 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

tsrs

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. Read the announcement.

Get started

pnpm add -D tsrs
pnpm exec tsrs --noEmit --fast

--fast enables performance optimizations, including adaptive checker counts and additional caches. See fast mode for details.

You can try tsrs today and give us feedback on performance, memory usage, and conformance. Try checking and emitting code in the browser playground.

tsrs --fast, tsrs and TypeScript 7.1 beta: check time and peak memory by project

Conformance

We aim to release a stable version against TypeScript 7.1 with 100% conformance. See compatibility and evidence for supported features and known gaps.

Default mode preserves the pinned TypeScript compiler's checker behavior, including known diagnostic differences when checker count or file order changes. This sensitivity is inherited from TypeScript itself. See differences from pinned TypeScript for the remaining runtime differences and unsupported features.

Fast mode

The following defaults and opt-in preset are available in 0.20.0 and later.

By default, tsrs follows the pinned TypeScript compiler's checker settings: four checkers (capped by file count), Go's file assignment and checker history. Enable the fast preset with --fast or TSRS_FAST=1:

pnpm exec tsrs --noEmit --fast
# Or enable the same preset through the environment:
TSRS_FAST=1 pnpm exec tsrs --noEmit

Fast mode adapts checker counts to the machine and project, groups related work together, and enables additional caches and memory optimizations. It keeps strict, skipLibCheck, noCheck and other checking options as configured.

See performance options for configuration, behavior and incremental-cache details.

Extra features

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

Learn more

Contributing

The issue tracker is open for bug reports. Please include a minimal reproduction. Pull requests remain closed because we don't have the bandwidth to review 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.

About

Rust port of the TypeScript 7 type checker

Resources

Code of conduct

Contributing

Security policy

Stars

2.5k stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages