# dudykr/stc

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/dudykr-stc).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

5,719 stars · 159 forks · Rust · Apache-2.0 · archived

## Links

- GitHub: https://github.com/dudykr/stc
- Homepage: https://stc.dudy.dev
- awesome-repositories: https://awesome-repositories.com/repository/dudykr-stc.md

## Topics

`rust` `typescript`

## Description

stc is a TypeScript type checker implemented entirely in Rust, designed to validate type correctness in TypeScript source code with native performance and memory safety. It operates as a no-emitting type validator, meaning it checks types only and does not produce JavaScript output, reducing overhead compared to a full compiler. The checker is built around a zero-false-positive design, reporting only errors that are provably certain from the type system, prioritizing correctness over speculative warnings.

The tool distinguishes itself through parallel file processing, analyzing source files concurrently across multiple CPU threads to minimize total check time. It also features an incremental compilation cache that stores pre-compiled type definitions on disk, allowing repeated type-checking operations to skip re-analysis of unchanged dependencies. Type definitions are loaded and processed according to TypeScript's module system semantics, including namespace-aware resolution of global and namespace-based declarations.

The checker performs direct AST traversal for type inference and error detection, operating on the parsed abstract syntax tree without intermediate representations. It provides type checking and error reporting for TypeScript code, functioning as a linting tool that reports type errors without false positives. The project's documentation and installation surface are available through its repository, which includes setup instructions for integrating the Rust-based type checker into development workflows.

## Tags

### Development Tools & Productivity

- [TypeScript Validators](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/typescript-validators.md) — Validates type correctness in TypeScript source code using a fast Rust-based type checker. ([source](https://cdn.jsdelivr.net/gh/dudykr/stc@main/README.md))
- [Type Definition Caches](https://awesome-repositories.com/f/development-tools-productivity/compiler-caches/type-definition-caches.md) — Caches pre-compiled type definitions on disk to speed up repeated type-checking operations.
- [Source File Processors](https://awesome-repositories.com/f/development-tools-productivity/parallel-build-processors/source-file-processors.md) — Analyzes source files concurrently across multiple CPU threads to minimize total check time.

### Software Engineering & Architecture

- [TypeScript Type Checkers](https://awesome-repositories.com/f/software-engineering-architecture/static-type-checkers/php-type-checkers/typescript-type-checkers.md) — Validates TypeScript type correctness with a Rust-based engine for native performance and memory safety.
- [Provably Certain Filters](https://awesome-repositories.com/f/software-engineering-architecture/false-positive-filtering/provably-certain-filters.md) — Reports only errors that are provably certain from the type system, prioritizing correctness over speculative warnings.
- [Rust Implementations](https://awesome-repositories.com/f/software-engineering-architecture/static-type-checkers/php-type-checkers/rust-implementations.md) — Validates TypeScript types with a Rust engine for performance and minimal false positives.
- [Rust Implementations](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/rust-implementations.md) — Implements TypeScript type checking entirely in Rust for native performance and memory safety.
- [TypeScript Type Checking Instruction](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/typescript-type-checking-instruction.md) — Checks TypeScript code for type errors quickly using a Rust-based type checker.
- [Fast Checkers](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/typescript-type-checking-instruction/fast-checkers.md) — Checks TypeScript code for type errors quickly using a Rust-based type checker.
- [Provably Certain Checkers](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/typescript-type-checking-instruction/provably-certain-checkers.md) — Reports only provably certain type errors in TypeScript code, prioritizing correctness over speculative warnings.
- [Rust-Based Type Checkers](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/typescript-type-synthesis/rust-based-type-checkers.md) — Validates type correctness in TypeScript source code using a fast Rust-based implementation.
- [TypeScript Type Definition Loaders](https://awesome-repositories.com/f/software-engineering-architecture/type-definitions/typescript-type-definition-loaders.md) — Loads and processes typing packages that use namespaces and globals for type checking.

### Part of an Awesome List

- [No-Emitting Validators](https://awesome-repositories.com/f/awesome-lists/devtools/type-checkers/no-emitting-validators.md) — Validates types only without producing JavaScript output, reducing overhead compared to a full compiler.
- [Zero-False-Positive Checkers](https://awesome-repositories.com/f/awesome-lists/devtools/type-checking/incremental-type-checkers/zero-false-positive-checkers.md) — Reports only provably certain type errors, prioritizing correctness over speculative warnings.

### Programming Languages & Runtimes

- [Rust-Implemented Tooling](https://awesome-repositories.com/f/programming-languages-runtimes/rust-implemented-tooling.md) — Implements TypeScript type checking entirely in Rust for native performance and memory safety.
- [Type Checking](https://awesome-repositories.com/f/programming-languages-runtimes/type-relationship-verification/type-checking.md) — Infers types and reports errors in TypeScript code without producing false positives. ([source](https://stc.dudy.dev/docs/roadmap))
- [No-Emitting Validators](https://awesome-repositories.com/f/programming-languages-runtimes/type-validation/no-emitting-validators.md) — Validates type correctness without producing JavaScript output, reducing overhead.
- [Type Definition Caches](https://awesome-repositories.com/f/programming-languages-runtimes/class-method-overrides/method-cache-and-hierarchy-lookups/type-definition-caches.md) — Caches pre-compiled type definitions to speed up repeated type-checking operations. ([source](https://stc.dudy.dev/docs/roadmap))
- [TypeScript Module Resolvers](https://awesome-repositories.com/f/programming-languages-runtimes/namespace-resolvers/typescript-module-resolvers.md) — Resolves global and namespace-based type declarations according to TypeScript's module system semantics.

### Data & Databases

- [Source File Processors](https://awesome-repositories.com/f/data-databases/parallel-processing/source-file-processors.md) — Analyzes TypeScript source files concurrently across multiple CPU threads to minimize total check time.
- [TypeScript Definition Loaders](https://awesome-repositories.com/f/data-databases/protobuf-serialization/definition-loading/typescript-definition-loaders.md) — Loads and processes typing packages that use namespaces and globals. ([source](https://stc.dudy.dev/docs/roadmap))

### Testing & Quality Assurance

- [Zero-False-Positive Linters](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/code-quality-tools/formatting-and-linting-pipelines/javascript-and-typescript-toolchains/typescript-linting-plugins/zero-false-positive-linters.md) — Reports type errors in TypeScript code without producing false positives.
