ts-rust 发布:由 LLM 将 TypeScript 编译器、检查器和 LSP 移植到 Rust
TL;DR · AI 摘要
ts-rust åå¸ï¼ç± LLM å° TypeScript ç¼è¯å¨ãæ£æ¥å¨å LSP ç§»æ¤å° Rust · AIHOT Hacker Newsï¼AI çå¸ Â·...
核心要点
- 主题聚焦:ts-rust 发布:由 LLM 将 TypeScript 编译器、检查器和 LSP 移植到 R
- 来源:AI HOT 精选,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
ts-rust åå¸ï¼ç± LLM å° TypeScript ç¼è¯å¨ãæ£æ¥å¨å LSP ç§»æ¤å° Rust · AIHOT
Hacker Newsï¼AI çå¸
·
jcbhmr
2026-10-08 08:46
9 å°æ¶å
ç²¾é
AI è¯å
76
ts-rust åå¸ï¼ç± LLM å° TypeScript ç¼è¯å¨ãæ£æ¥å¨å LSP ç§»æ¤å° Rust
Port of the TypeScript compiler, checker and lsp to Rust, by LLM
AI 导读
ts-rustï¼tsc-rsï¼å° microsoft/TypeScriptï¼Go å®ç°ï¼çç¼è¯å¨ãç±»åæ£æ¥å¨åè¯è¨æå¡å¨ç§»æ¤ä¸º Rustï¼ä½è ç§°å ¨é¨ä»£ç ç± LLM ç¼åï¼æ¬äººæªè¯»è¿ä»£ç ã
æ¨èçç±
åæç»åºäºå®æ´åºåæ°æ®åå ¼å®¹æ§æµè¯ç»æï¼è¯»è å¯ä»¥æ®æ¤è¯ä¼°è¿ä¸ª Rust ç TypeScript æ£æ¥å¨æ¯å¦éåæ¥å ¥ç°æé¡¹ç®ã
æ£æ · AI ç¿»è¯
ts-rustï¼åå tsc-rsï¼
ææ³çç LLM è½å¦æ TypeScript ç¼è¯å¨ãæ£æ¥å¨å lsp ç§»æ¤å° Rustãäºå®è¯æå®ä»¬å¯ä»¥ã
è¿ è±è´¹äºè¶ è¿ 42 ä¸ç¾å ç tokenï¼ä½ä½ 大æ¦ç¨çº¦ 2 ä¸ç¾å å°±è½å®æï¼è§ä¸æï¼
卿º
- æµè¯æ¨¡åè½å
- æé ä¸ä¸ªå¿«éç TypeScript ç±»åæ£æ¥å¨
- æé ä¸ä¸ªè½å¨ WASM ä¸é«æ§è½è¿è¡ç ts æ£æ¥å¨
- æ¢å¾
è¦å
è¿æ¯æ©æçæ¬ã 卿们æµè¯è¿çææçå®é¡¹ç®ä¸ï¼å®é½å®ç°äº 100% å ¼å®¹ã对äºç»å¤§å¤æ°åºç¨æ¥è¯´ï¼å®åºå½å¯ä»¥ä½ä¸ºç´æ¥æ¿ä»£å使ç¨ãåè§ å·²ç¥é®é¢ ã
å¦å¤å¼å¾ä¸æçæ¯ï¼è¿ä»£ç æä¸è¡é½æ²¡è¯»è¿ã
å®è£
äºå è¦åï¼æå®å ¨ä¸ç¥éè¿å°åºè½ä¸è½ç¨ã
npm install -D tsc-rs
npx tsc-rs -p tsconfig.jsonè¿å±å¦ä½ï¼
æç¨äºå¤§é OpenAI æ¨¡åæ¥å°è¯å®æè¿æ¬¡ç§»æ¤ãæ»å ±ï¼æç¨ GPT-5.6 Sol å GPT 6 Astra æ¶èäºè¶ è¿ 40 ä¸ç¾å API å®ä»·ç token ãå®ä»¬å¨æ°æç /goal 循ç¯ä¸åäºè¶ è¿ 130 ä¸è¡ Rustï¼å ¼å®¹åº¦å´å§ç»æ²¡è½è¶ è¿ 84% å·¦å³ã
彿çå°æç Claude Code é¢åº¦å 乿²¡æä¹æ¶èæ¶ï¼ææ³æ Opus 5.5 æè¿å»åºè¯¥ä¼å¾æè¶£ãå® 10 å°æ¶å°±ååºäºä¸ä¸ªå¯ç¨ç v0ã
æä»¥ä¸ºå®ä¼ç»§ç»ä½¿ç¨ Codex 模ååç代ç ãæéäºã Opus 5.5 æ¯ä»é¶å¼å§çãå®ç¨ 1/10 çæ¶é´å°±æ¯ Astra èµ°å¾æ´è¿ã
æè®©å®ç»§ç»è·ä¸å»ï¼å®ç¡®å®åå°äºãæ» token è±è´¹ä¸º 两å¨å 约 24,047 ç¾å ç API æ¯åº ãæç¨çæ¯æç Claude è´¦æ·ï¼æç®ä¸æ¥å¤§çº¦æ¯æ 200 ç¾å å¥é¤æ¯å¨éé¢ç 925% å° 983% ã
ç¡®å®å¾è´µï¼ä½èèå° typescript-go æå ¥äºé£ä¹å¤å·¥ä½ï¼ä¹ä¸ç®å¤ªç³ã
âåå¾åç线â
以䏿æå 容齿¯ç±æç LLM åçï¼ä¸æ¯æã
è¿å°åºæ¯ä»ä¹ï¼
ts-rust æ¯å¾®è½¯åç TypeScript ç¼è¯å¨çç´æ¥ç§»æ¤çï¼åè ç¨ Go ç¼åï¼ microsoft/TypeScript ï¼å为 typescript-go ï¼ãå®ä¿çäº Go çç®æ³åè¡ä¸ºï¼å¹¶æ¥æç¸åçå½ä»¤è¡ï¼ tsc ï¼ãè¯è¨æå¡å¨å APIã
tsc-rs æ¥åä¸ tsc ç¸åçé项ãnpm å å为 tsc-rs ï¼ä»¥å ä¸ typescript å å²çªãæ¯ä¸ª åå¸çæ¬ è¿é带åå¹³å°çç¬ç«å½æ¡£ï¼ tsc äºè¿å¶æä»¶åå ¶æè¾¹ç lib æä»¶ã
å¹³å°ï¼Linux x64ï¼éæï¼éç¨äºä»»ä½åè¡çï¼å macOS arm64ãWindows å Linux arm64 å°ä¸å¯ç¨ã
è¦å¨ VS Code ä¸ä½¿ç¨å®ï¼è¯·åé npm å README ã
Effect è¯æ
tsc-rs å ç½®äº Effect è¯è¨æå¡è¯æï¼ä»£ç 377xxxï¼ï¼å æ¤ Effect 项ç®ä¸éè¦ç¬¬äºä¸ªç¼è¯å¨ãå®ä»¬ä¸ TypeScript è¯ææ¥èªå䏿¬¡æ£æ¥ï¼è¯è¨æå¡å¨ä¹ä¼æ¾ç¤ºå®ä»¬ãå®ä»¬ä» å¨ tsconfig å«æè¯¥æä»¶æ¶è¿è¡ï¼ä¸ @effect/language-service 䏿 ·ï¼
{
"compilerOptions"
: {
"plugins"
: [{
"name"
:
"
@effect/language-service
"
}] } }è§åãé项å @effect-diagnostics æ³¨éæ¯ Effect-TS/tsgo 0.46.1 çç§»æ¤ãè¯è¨æå¡å¨çç¼è¾å¨åè½ï¼å¿«éä¿®å¤ãéæãæ¬åãè¡¥å ¨ï¼å°æªç§»æ¤ã
ç¶æ
该移æ¤åºå®å¨ä¸ä¸ªä¸æ¸¸ä¿®è®¢çæ¬ï¼å³ microsoft/TypeScript 673a5f17d713 ï¼2026-09-29ï¼TypeScript 7.1.0-devï¼ UPSTREAM.md ï¼ï¼å¹¶ä¸è¯¥ä¿®è®¢çæ¬ç Go çæ¬è¿è¡æ¯è¾ãè¦è¿è¡æ¯è¾ï¼è¯·ä½¿ç¨ [email protected] ï¼è䏿¯ 7.0.x æ @typescript/native-preview ãæ¤æå»ºåæ ·è¡¨ç°åºçå·®å¼å±äºä¸æ¸¸è¡ä¸ºï¼å½ç§»æ¤æ´æ°å°æ´æ°çåºå®çæ¬æ¶å°±ä¼æ¶å¤±ã
- ç»æç¸åã TanStack Query æ ¸å¿å Hono çæ£æ¥è¯æä¸ Go å®å ¨ä¸è´ãææ 181,711 个移æ¤ç Go æµè¯åéè¿ãè¯è¨æå¡å¨å API çåºçå¨ oracle æµè¯éä¸ä¸ Go ä¸è´ã
- æ´å¿«ã å¨ 60 ä¸ªå¼æºé¡¹ç®ä¸ï¼ç±»åæ£æ¥èæ¶çº¦ä¸º Go çæ¬çä¸åï¼å ä½å¹³åå¼ï¼ãé¢è§å æ¯å¨ CI ä¸æå»ºçï¼æªå¯ç¨ PGO å BOLTï¼å æ¤æ¯ä¸è¿°å®æµæå»ºæ´æ ¢ã
- çå®é¡¹ç®ã å¨ 120 ä¸ªå¼æºä»åºä¸ï¼å½ä»¤è¡è¾åºä¸ Go çæ¬çå·®å¼ä» å¨äºä¸è¿°é®é¢ï¼ä»¥å Go èªèº«è¾åºå¨å¤æ¬¡è¿è¡é´åçååä¹å¤ã
åºåæµè¯ï¼T3 Code
对 T3 Code è¿è¡å®æ´ç±»åæ£æ¥ï¼å¹¶ä¸ tsc 6ã tsc 7 以å Bun 䏿°ç bun check è¿è¡å¯¹æ¯ãT3 Code 使ç¨äº Effectï¼å æ¤æä¸¤ç§æ åµï¼ä¸å¸¦ Effect è¯æå带 Effect è¯æãæ¯æ¬¡èæ¶å为äºä¸ª T3 Code 项ç®çæ»åãè¶ä½è¶å¿«ã
ä¸å¸¦ Effect è¯æ
æ£æ¥å¨
æ¶é´
对æ¯
tsc6
7
bun check4.07s
15.4Ã
å¿« 3.95Ã
âtsc-rs7.25s
8.6Ã
å¿« 2.22Ã
ââ16.10s
3.9Ã
åºå
âââââ62.63s
æ ¢ 3.89Ã
ââââââââââââââââââ带 Effect è¯æ
7 + Effect
ï¼å ç½® Effectï¼
11.13s
12.5Ã
å¿« 1.89Ã
âââ7 +
@effect/tsgo21.07s
6.6Ã
ââââââï¼ç¶å
effect-tsgo diagnostics37.60s
3.7Ã
æ ¢ 1.78Ã
âââââââââââ6 +
@effect/language-service138.63s
æ ¢ 6.58Ã
ââââââââââââââââââââââââââââââââââââââââå½ä½ ä¸éè¦ Effect è¯ææ¶ï¼ bun check æ¯æå¿«çã宿²¡æè¿äºè¯æï¼å æ¤ Effect 项ç®éè¦ç¬¬äºéæ£æ¥ã tsc-rs éè¿ä¸æ¬¡æ£æ¥å³å¯è·å¾å®ä»¬ã
é误ã tsc-rs ã tsc 7 + @effect/tsgo 以å effect-tsgo diagnostics è¿ä¸éæ¥åäºç¸åç 221 æ¡ Effect è¯æã tsc 6 ä½¿ç¨ JavaScript Effect æä»¶ï¼ @effect/language-service 0.87.4ï¼ï¼å ¶è§åéä¸åï¼å¨ apps/server ä¸å®æ¥å 287 æ¡ï¼èå ¶ä»å·¥å ·æ¥å 177 æ¡ã tsc-rs å tsc 6 夿¥åä¸ä¸ªé误ï¼å³ apps/server/scripts/record-pi-rpc-replay-fixture.ts ä¸ç TS2322ãTypeScript 7.1.0-dev 乿¥åäºå®ï¼ pingdotgg/t3code#16704 ä¿®å¤äºè¯¥é®é¢ã
æµéæ¹å¼ï¼ä¸ä¸æçå®åºç¨ç¸åçæºå¨åæ¹æ³ï¼å¹¶æ·»å äº --composite false ï¼ apps/web 为 compositeï¼ãT3 Code ä½äº cd41c4ad ï¼é¡¹ç®ä¸º apps/server ã apps/web ã apps/mobile ã packages/client-runtime å packages/shared ãä¸å¸¦ Effect æ¶ï¼é ç½®ä¸æ²¡æ Effect æä»¶ã带 Effect æ¶ï¼ tsc 7 æ¯æ¥èª @effect/tsgo 0.46.1 ç Effect è¡¥ä¸ç 7.0.2ï¼è tsc 6 æ¯ç¨ @effect/language-service æè¡¥ä¸ç 6.0.3ãèæ¬ä¸º scripts/bench-apps/t3code.sh ãT3 Code ä¸ç tsc-rs å¼å ³æ¯ pingdotgg/t3code#16704 ã
åºåæµè¯ï¼çå®åºç¨
ä½¿ç¨ tsc 6ï¼JavaScript ç¼è¯å¨ï¼ã tsc 7ï¼Go ç¼è¯å¨ï¼ã tsc-rs å bun check 对å ä¸ªå¼æºåºç¨è¿è¡å®æ´ç±»åæ£æ¥ãåæ°æ¯ç¸å¯¹äº tsc 6 çå éæ¯ãæ¶é´è¶ä½è¶å¿«ã
åºç¨
æ£æ¥è¡æ°
VS Code
3.75M
54.56s
6.84s (8.0Ã)
4.20s (13.0Ã)
1.62s (33.7Ã)
Sentry
ï¼å端ï¼
2.11M
58.76s
7.90s (7.4Ã)
4.46s (13.2Ã)
3.14s (18.7Ã)*
Playwright
585k
4.48s
0.66s (6.8Ã)
0.34s (13.2Ã)
0.18s (25.0Ã)
Excalidraw
449k
5.32s
0.80s (6.7Ã)
0.70s (7.6Ã)
0.18s (29.0Ã)
TypeORM
386k
3.86s
0.55s (7.0Ã)
0.36s (10.7Ã)
0.19s (20.0Ã)
tRPC
ï¼server å ï¼
209k
1.10s
0.16s (6.8Ã)
0.09s (12.0Ã)
0.12s (9.1Ã)*
å ä½å¹³åå¼
7.1Ã
11.4Ã
20.9Ã
ä¸ tsc 7 ç¸æ¯ï¼ tsc-rs å¿« 1.61Ãï¼ bun check å¿« 2.95Ãï¼å ä½å¹³åå¼ï¼ãé¤ tRPC å¤ï¼ bun check 卿¯ä¸ªåºç¨ä¸é½æ¯æå¿«çã
- bun check æ¥åäºå ¶ä»æ£æ¥å¨åæªæ¥åçé误ï¼Sentry ä¸ 3 个ï¼tRPC ä¸ 2 个ã
æ¯ä¸ªé ç½®å¨ tsc 7.0.2 䏿£æ¥å为 0 é误ãå ¶ä»å·®å¼ï¼
- tsc-rs å¨ VS Code 䏿¥å 10 个é误ï¼å¨ Sentry 䏿¥å 2 个ãTypeScript 7.1.0-devï¼ typescript@next ï¼éè¡æ¥åç¸åçé误ã tsc-rs ç§»æ¤äº 7.1 å¼åçæ¬ï¼å ¶ä¸å å« 7.0.2 没æçæ£æ¥ã
- tsc 6 å¨ VS Code 䏿¥å 9 个é误ã
æµéæ¹å¼ï¼Apple M4 Proï¼12 æ ¸ï¼48 GBï¼ï¼macOS 26.5.1ã hyperfine ï¼1 次é¢çè¿è¡åå 5 次è¿è¡çä¸ä½æ°ï¼ä½¿ç¨ --noEmit --incremental false ãæ¯ä¸ªæ£æ¥å¨ä½¿ç¨å ¶é»è®¤çº¿ç¨æ°ã tsc 7 å tsc-rs 以åçäºè¿å¶è¿è¡ï¼ä¸ä½¿ç¨ npm å¯å¨å¨ã tsc 6 å¨ Node 24.19 ä¸è¿è¡ï¼å 大å°ä¸º 16 GBï¼å ä¸ºå¨ VS Code å Sentry ä¸ä½¿ç¨é»è®¤å ä¼å åä¸è¶³ãçæ¬ï¼ tsc-rs 0.1.0ãTypeScript 7.0.2 å 6.0.3ãBun canary bd599f5af ãæ£æ¥çè¡æ°æ¯ tsc 7 ç --extendedDiagnostics 计æ°ï¼ä½¿ç¨ .d.ts æä»¶ãä¸é¢ç T3 Code åºåæµè¯ä½¿ç¨ç¸åçæºå¨åæ¹æ³ã
æå个åºç¨éè¦ä¿®æ¹æè½å¨ tsc 7 ä¸ä»¥ 0 é误è¿è¡æ£æ¥ãå ¶ä»æ²¡æååï¼
- Excalidrawï¼æ²¡æ baseUrl ï¼å 为 TS 7 ç§»é¤äºå®ã
- TypeORMï¼ moduleResolution ä» node æ¹ä¸º nodenext ï¼å 为 TS 7 ç§»é¤äº node ã
- VS Codeï¼å ¶ postinstall æ·»å ç electron ç±»åå®ä¹ã
- Playwrightï¼å ¶æå»ºçæçæºæä»¶ã
æä¸¤ä¸ªåºç¨ä¸å¨è¡¨ä¸ï¼
- rxjs main éè¦å æå»ºå ¶å·¥ä½åºå ã
- date-fns 使ç¨é¡¹ç®å¼ç¨ãå¨é£éï¼ tsc -p å bun check åä¸åçå·¥ä½ã
èæ¬ä½äº scripts/bench-apps ï¼ setup.sh <dir> ï¼ç¶åæ¯ run.sh <dir> å summary.py <dir> ï¼T3 Code ç¨ t3code.sh <dir> ã
å·²ç¥é®é¢
- å¨æäº monorepo ä¸ï¼å·¥ä½åºå çæºæä»¶æ¢å¯ä»¥éè¿ node_modules 访é®ï¼ä¹å¯ä»¥éè¿ç´æ¥å¯¼å ¥è®¿é®ãå¨é£éï¼ tsc-rs å¯è½ä¸ºæ¯ tsc æ´å¤çè¿äºæä»¶ååºè¾åºï¼å¹¶æ¥å TS6059ï¼æä»¶ä¸å¨ rootDir ä¸ï¼ã tsc éè¿è®¡æ¶æ¥å³å®è¿ä¸ç¹ï¼å æ¤å®èªå·±çç»æå¨è¿è¡ä¹é´ä¼ååã tsc-rs 卿¯æ¬¡è¿è¡ä¸ç»åºç¸åçç»æï¼TypeScript 6 çç»æï¼ã
- å¨ tsc -b ä¸ï¼å½ä¸ä¸ªé¡¹ç®å¯¼å ¥å¦ä¸ä¸ªé¡¹ç®çè¾åºè没æé¡¹ç®å¼ç¨æ¶ï¼ tsc-rs å¯è½è¯»åå°æ§çæç¼ºå¤±çè¾åºï¼TS2305 æ TS2307ï¼ï¼è tsc 读åå°æ°çè¾åºãå½é¡¹ç®åªéè¦ååºå ¶è¾åºæ¶ä¼åçè¿ç§æ åµãæ·»å å¼ç¨å³å¯ä¿®å¤ã
- å¨ç¼è¾å¨ä¸ï¼é¿æ¶é´ç¼è¾ä¼è¯æé´å åä¼ç¼æ ¢å¢é¿ï¼æ¯ 1,000 次ç¼è¾çº¦ 20 MiBï¼ã卿们æµéçä¼è¯ä¸ï¼å®ä¿æå¨ tsc 以ä¸ã
- tsc-rs --version æå°å®ç§»æ¤ç TypeScript çæ¬ï¼7.1.0-devï¼ï¼è䏿¯ npm çæ¬ãç¼è¯å¨æ®æ¤å¹é typesVersions ã
å¼å
crates/ts_goport æ¯ç¼è¯å¨ãå®æä¸¤ä¸ªé¨å crateï¼ goport_util å goport_lsproto ï¼ä½äº crates/ts_goport/parts ä¸ï¼å¹¶ä½¿ç¨ crates/ts_goport/libs ä¸ç lib æä»¶ã tools/ts_ast_codegen çæ crates/ts_goport/src/astdata ï¼ tools/ts_diagnostics_codegen çæ crates/ts_goport/src/diagnostics/catalog.rs å crates/ts_goport/src/diag.rs ã crates/ts_wasm æ¯ WebAssembly æå»ºï¼ npm/wasm ï¼ã
./scripts/run-cargo-capped.sh build --release -p ts_goport --bins
./scripts/verify.shäºè¿å¶æä»¶æ¯ goport ï¼ç±»åæ£æ¥ï¼å tsgo ï¼Go tsgo å½ä»¤è¡ï¼ãGo åºçº¿æµè¯ä½¿ç¨ TS_GO_REPO=/path/to/typescript-go ./scripts/run-cargo-capped.sh test -p ts_goport --test go_baselines è¿è¡ã
- ç§»æ¤è§åï¼ crates/ts_goport/PORTING.md
- æµéåé¨ç¦èæ¬ï¼ scripts/goport
- npm å ååå¸ï¼ npm/README.md
- ç±»åæ£æ¥å¨å·¥ä½è§åï¼ AGENTS.md ã é®è´£è§å å ä¿åç¶æ
- 项ç®å¦ä½å¼å§ï¼ docs/history.md
åå¸
æ¨éæ ç¾ v<version> ï¼ä¾å¦ v0.1.0 ï¼ã åå¸å·¥ä½æµ æå»ºãæå å¹¶æµè¯è¿äºå ï¼å°å®ä»¬åå¸å° npm å¹¶å建 GitHub åå¸ã稳å®çæ¬è¿å ¥ dist-tag latest ï¼é¢åå¸çæ¬ï¼ v0.2.0-beta.1 ï¼è¿å ¥ next å GitHub é¢åå¸ãåè§ npm/README.md ã
许å¯è¯
MIT ã该移æ¤ä¿çäºå®æç§»æ¤ä»£ç ç许å¯è¯å声æï¼TypeScriptï¼Apache-2.0ï¼å Go æ ååºçé¨åå 容ï¼BSD-3-Clauseï¼ãåè§ NOTICE.md ã
æ¥æºï¼ Hacker Newsï¼AI çå¸ Â· github.com
AI ç¼ç
äº§åæ´æ°
#
ç¼ç
OpenAI
Anthropic