پورت Rust کامپایلر TypeScript با نام tsrs منتشر شد
حدود ۳ دقیقه مطالعه
شرکت Cloudflare روز ۲۰ اکتبر ۲۰۲۶ در بلاگ خودش پروژهی tsrs را معرفی کرد؛ پورت Rust کامپایلر و type checker زبان TypeScript که با همکاری VoidZero ساخته میشود و بخشی از toolchain متنباز Oxc است. نویسندههای بلاگ تأکید میکنند این پروژه fork نیست و طراحی زبان باید دست تیم TypeScript بماند.
پروژه از کجا آمده؟
طبق گزارش The New Stack، کار در سپتامبر ۲۰۲۶ در شرکت Owner.com شروع شد؛ جایی که مکس شونک (Max Schwenk) با یک backend تایپاسکریپتی ۳۷٬۰۰۰ فایلی کار میکرد. او میگوید کامپایلر Go مایکروسافت برای یک بررسی تکریسمانی ۱۹ گیگابایت حافظه و ۸۰ ثانیه وقت میگرفت. شونک میگوید با Claude Opus 5.5 و بیش از ۲۰ subagent موازی پورت را ساخته و خودش هیچ کدی ننوشته است؛ این ادعا از خود اوست و در بلاگ Cloudflare جزئیات فرایند ساخت نیامده.
بلاگ Cloudflare میگوید تیم TypeScript «همکار نزدیک» پروژه است، ولی README رسمی مینویسد tsrs وابسته به مایکروسافت نیست و از طرف آن تأیید نشده؛
سرعت و حافظه
طبق ادعای Cloudflare، نسخههای اولیه تا ۸ برابر سریعتر از TypeScript 7.0 هستند و حدود ۷۰ درصد حافظهی کمتری مصرف میکنند، با همان تعداد type-check worker. کد benchmark در پوشهی bench مخزن است. شونک جداگانه میگوید روی بیش از ده پروژهی عمومی ۲٫۵ تا ۵ برابر سریعتر از nightly کامپایلر Go بوده و با حدود یکسوم حافظه، و زمان typecheck در CI شرکتش حدود ۷ ثانیه شده است.
هر دو دسته عدد ادعای خود سازندگان هستند و baseline هایشان فرق دارد (یکی TypeScript 7.0 و دیگری nightly Go)، پس ارزیابی مستقل نیستند. دنیل روزنوسر از مایکروسافت هم میگوید بخشی از بهبود سرعت TypeScript 7.1 beta که تا ۲٫۵ برابر 7.0 سریعتر اعلام شده، از بهینهسازیهایی آمده که در tsrs پیدا شدهاند.
وضعیت و محدودیتها
پروژه هنوز experimental است. در README هدف «۱۰۰ درصد conformance» نوشته شده و سازندهها میگویند روی پروژههای موجود باگ correctness پیدا نکردهاند (ادعای خودشان)، اما نرخ قبولی تستهای conformance در بلاگ منتشر نشده. ترتیب چاپ diagnostic ها هنوز با TypeScript اصلی فرق دارد، و دستورهای init و showConfig پشتیبانی نمیشوند. نسخهی stable برای TypeScript 7.1 برنامهریزی شده، issue و pull request در مخزن فعلاً بستهاند و کد با مجوز Apache-2.0 در GitHub است (مجوز در بلاگ ذکر نشده). برای امتحان، README این دستورها را میدهد و پکیج WebAssembly هم با شناسهی زیر موجود است:
pnpm add -D tsrs
pnpm exec tsrs --noEmit
@tsrs/wasm
بلاگ Cloudflare بهجای pnpm از npm install و npx نوشته است. در نقشهی راه هم ادغام tsrs با پروژهی tsc-rs، همگامسازی با TypeScript بالادستی با agent، و ارائهی قاعدههای type-aware برای Oxlint آمده است.
منابع:
