GitHub Hot Board

GitHub Hot Board · Архів репозиторію

oxc-project/tsrs

Rust port of the TypeScript 7 type checker (Опис узято з самого репозиторію.)

Дані на October 23oxc-project

Найкраще місце

#143

Злітна швидкість

2K

Усього зірок

37

Усього форків

1

Днів у рейтингах (30 дн.)

Документація проєкту

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

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

Conformance

The 0.19.0 source upgrade targets microsoft/TypeScript v7.1-beta at 3e9236361fa9. 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. The seven watch-tuning flags removed by TypeScript 7 are rejected by tsrs as well. The #623 source upgrade ports all 112 upstream commits and supports source-phase import source and import.source() syntax. The last published release, 0.18.0, uses the earlier pin; the 0.19.0 candidate pins the final commit. Its Node API exposes the project checker's merged, declaration, node, and parent symbol lookups. The source-31 SDK adds typed paths; source 58 promotes the SDK exports to tsrs/path, tsrs/sync, tsrs/async, tsrs/ast, and tsrs/vscode for an explicitly selected API package. The source-51 compiler reports TS18117 for deferred imports without a namespace binding, including in JavaScript. Source 62 adds the ESNext iterator typings for chunks, join, includes, zip, and zipKeyed. Source 101 creates private Unix API socket directories and restricts Windows API named pipes to the current user. Source 102 makes sync SDK generator instances single-use across batch calls, matching upstream TypeScript. Source 104 rejects network filesystem paths before OS access and reports TS5116 for affected config and source references. Source 109 lets sync and async Node API clients write a timing snapshot on close when TS_API_TIMING_DIR is set.

tsrs vs the TypeScript nightly: relative type-checking speed and peak memory by project

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.

Поточні місця

  • 143

    Злітна швидкість

    2K зірок · 37 fork · Зірок на добу

    Зліт →

Динаміка за 30 днів

Накоплені зірки

Динаміка місць

← До рейтингів