Repolode
pingdotgg

pingdotgg/ts-rust

TypeScript 7 编译器(tsc)的实验性 Rust 移植版,保持相同的命令行、语言服务和 API。

Star
1,373
Fork
92
未关闭 Issue
20
最近提交
6小时前

这是什么?

ts-rust 是微软原生 TypeScript 编译器的 Rust 移植版。原编译器用 Go 编写,本项目保留其算法和行为,并提供相同的命令行(tsc)、语言服务和 API。通过 npm 安装的包名为 tsc-rs,避免与 typescript 包冲突,各平台也提供独立的压缩包。

项目固定在某个上游 TypeScript 版本上,目标是输出与对应版本的 tsc 7 完全一致。内置 Effect 语言服务的诊断规则,在 tsconfig 中声明 @effect/language-service 插件后生效。--fast、--checkers N 等可选开关以更多 CPU 和内存换取速度。项目仍处于实验阶段。

仓库中包含在真实开源项目上与 tsc 6、tsc 7 和 Bun 的性能对比,并列出了 monorepo 模块解析及 tsc -b 并发构建等已知差异。

核心功能

  • 01命令行与 tsc 选项相同,可直接替换使用。
  • 02语言服务和 API 与 Go 实现的行为保持一致。
  • 03内置 Effect 语言服务的诊断规则和编辑器功能。
  • 04可选的 --fast 模式,并行运行多个检查器。
  • 05通过 npm 分发 Linux、macOS 和 Windows 的预编译二进制文件。

适用场景

  • 加快大型 TypeScript monorepo 的全量类型检查。
  • 在对编译耗时敏感的 CI 中运行 TypeScript 类型检查。
  • 在基于 Effect 的项目中免去额外的编译检查步骤。

快速上手

  1. 1

    从 npm 安装该包

    npm install -D tsc-rs
  2. 2

    使用 tsconfig 对项目进行类型检查

    npx tsc-rs -p tsconfig.json

使用前须知

  • README 称其为早期版本,作者表示从未阅读过这些代码。
  • README 警告安装可能无法正常工作,不作保证。
  • 仅列出 Linux、macOS arm64 及后续版本的部分平台,不同操作系统的支持情况不一。

标签

常见问题

ts-rust 是什么?
TypeScript 7 编译器(tsc)的实验性 Rust 移植版,保持相同的命令行、语言服务和 API。 ts-rust 是微软原生 TypeScript 编译器的 Rust 移植版。原编译器用 Go 编写,本项目保留其算法和行为,并提供相同的命令行(tsc)、语言服务和 API。通过 npm 安装的包名为 tsc-rs,避免与 typescript 包冲突,各平台也提供独立的压缩包。
ts-rust 可以免费使用吗?用的什么许可证?
ts-rust 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
ts-rust 还在维护吗?
活跃维护中。ts-rust 最近一次提交是在 2026年10月19日。
ts-rust 适合用来做什么?
加快大型 TypeScript monorepo 的全量类型检查。 在对编译耗时敏感的 CI 中运行 TypeScript 类型检查。 在基于 Effect 的项目中免去额外的编译检查步骤。
ts-rust 怎么安装和运行?
从 npm 安装该包: npm install -D tsc-rs 使用 tsconfig 对项目进行类型检查: npx tsc-rs -p tsconfig.json
在哪里获取 ts-rust?
源代码和安装说明在 GitHub 上:https://github.com/pingdotgg/ts-rust

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目