tsz: چککننده TypeScript با Rust که از tsgo هم سریعتره
خلاصهٔ کاملتر
tsz یه type checker (بررسیکننده نوع) و language service برای TypeScriptه که از صفر با Rust نوشته شده. هدف اصلیش اینه که بتونه جایگزین کامل tsc بشه — یعنی همون خروجیها، همون تشخیص خطاها، ولی با سرعت خیلی بیشتر.
در بنچمارکهای رسمی پروژه روی ۱۲ کیس مختلف، tsz مجموعاً ۳ ثانیه و tsgo حدود ۶ ثانیه زمان برد — یعنی tsz دو برابر سریعتره. tsgo هم پروژهای مشابهه که مایکروسافت روش کار میکنه و با Go نوشته شده.
وضعیت پروژه «تقریباً کامل» اعلام شده. TypeScript در مراحل پایانی کامپایلر هست و کارهای باقیمونده روی تنظیم پرفورمنس و پشتیبانی از LSP (پروتکل زبانی که ادیتورهایی مثل VS Code ازش استفاده میکنن) در محیط WebAssembly متمرکزه. کدبیس فعلی پروژه از ۱٬۰۲۸٬۸۴۴ خط Rust در ۱۴ کریت تشکیل شده.
tsz برای اثبات سازگاری، مجموعه تستهای خود TypeScript رو اجرا میکنه. نتایج فعلی برای نسخه TypeScript 6.0.3 به این شکله:
- Conformance (تطابق): 99.5٪
- JS Emit (تولید جاوااسکریپت): 93.6٪
- Declaration Emit (تولید فایلهای .d.ts): 82.0٪
- Language Service: 100.0٪
علاوه بر سرعت، tsz یه قابلیت منحصربهفرد هم داره: Sound Mode — یه حالت بررسی نوع سختگیرانهتر که TypeScript استاندارد ازش پشتیبانی نمیکنه و برای کسایی طراحی شده که میخوان ایمنی نوع واقعیتری داشته باشن.
نکات کلیدی:
- tsz یه type checker و language service برای TypeScriptه که با Rust ساخته شده
- در بنچمارک، دو برابر سریعتر از tsgo (پروژه مشابه مایکروسافت با Go) عمل میکنه
- conformance تستها ۹۹.۵٪ و language service کاملاً ۱۰۰٪ پوشش داره
- یه Sound Mode برای بررسی نوع دقیقتر داره که در TypeScript معمولی وجود نداره
- پروژه تقریباً کامله و روی پشتیبانی LSP در WebAssembly کار میشه




