tsrs؛ نسخه رَست تایپاسکریپت تا ۸ برابر سریعتر و ۷۰٪ کممصرفتر
یک شرکت CDN با VoidZero و تیم تایپاسکریپت پورت رَست این کامپایلر را معرفی کرد؛ بهگفته آنها تا ۸ برابر سریعتر از TypeScript 7.0 است.
یک شرکت زیرساخت CDN در ۲۰ اکتبر ۲۰۲۶ از tsrs رونمایی کرد؛ پورتی به زبان Rust از کامپایلر تایپاسکریپت. به گفته این شرکت، tsrs با همان تعداد workerهای بررسی نوع، تا ۸ برابر سریعتر از TypeScript 7.0 اجرا میشود و حدود ۷۰ درصد حافظه کمتری مصرف میکند. پروژه آزمایشی است و با همکاری VoidZero و تیم تایپاسکریپت پیش میرود.
tsrs چیست و چه کسانی پشت آن هستند؟
tsrs یک پورت وفادار از کامپایلر تایپاسکریپت به Rust است. به گفته نویسندگان، این پروژه فورک نیست: طراحی و مسیر زبان همچنان در اختیار تیم تایپاسکریپت میماند و tsrs باید تصمیمهای آنها را دقیق دنبال کند تا ناسازگار نشود.
این کار با همکاری VoidZero و یک توسعهدهنده از شرکت Owner.com انجام میشود و زیر چتر ابزارهای Oxc برای جاوااسکریپت رشد میکند. مخزن آن در سازمان oxc-project قرار دارد و تیم Oxc شروع به بازسازی کد برای سرعت و مصرف حافظه کمتر کرده است.
برای امتحان، طبق پست، کافی است `npm install tsrs` یا `npx tsrs` را اجرا کنید. یک بیلد WebAssembly هم با نام `@tsrs/wasm` در npm منتشر شده است.
نکات کلیدی
- تا ۸ برابر سریعتر از TypeScript 7.0 (طبق ادعای منتشرکننده)
- حدود ۷۰٪ مصرف حافظه کمتر
- فورک نیست و تیم تایپاسکریپت کنترل زبان را حفظ میکند
- هنوز آزمایشی است
پیشزمینه: از پورت Go تا Rust
پست یادآوری میکند که تنها پورت موفق پیشین، کار خود تیم تایپاسکریپت از جاوااسکریپت به Go بوده که به گفته آنها سرعت را حدود ۱۰ برابر کرد و مصرف حافظه را بسیار پایین آورد. به نوشته پست، مدلهای هوش مصنوعی پیشرفته اکنون میتوانند پورتهای بزرگ را در چند روز تقریباً مستقل انجام دهند و نتیجهاش موجی از «پورتها و بازنویسیها» به Rust یا C++ بوده است؛ نشانهای از تقاضا برای تایپاسکریپت سریعتر.
دلیل انتخاب Rust بیشتر به WebAssembly برمیگردد. به گفته نویسندگان، Go هنگام کامپایل به Wasm باید garbage collector خودش را همراه ببرد، اما مدل حافظه Rust تعامل سادهتری بین Wasm و میزبان فراهم میکند. هدف اعلامشده، ابزارهای توسعه کامل و ایزوله است که کنار عاملهای هوش مصنوعی روی ابر، در مرورگر یا حتی دستگاههای نهفته اجرا شوند.
در نسخههای خود تایپاسکریپت هم پیشرفت ادامه دارد: طبق پست، TypeScript 7.1 beta تا ۲.۵ برابر سریعتر از 7.0 است و بخشی از این بهینهسازیها از tsrs به بالادست منتقل شده است.
محدودیتها و برنامه نگهداری
نویسندگان میگویند بنچمارکها را با همان پیکربندی و با همکاری تیم تایپاسکریپت اجرا کردهاند، چون به نوشته آنها برخی مقایسههای اخیر از ماشینهای بزرگتر و گزینههای غیرپیشفرض استفاده کردهاند. اسکریپتهای بنچمارک در مخزن پروژه موجود است و میتوان آنها را خودتان اجرا کرد. نمودارها در متن پست تصویر هستند و عدد مستقلی برای هر پروژه ارائه نشده است.
تفاوتهای شناختهشده با تایپاسکریپت اصلی هنوز وجود دارد؛ برای نمونه ترتیب نمایش خطاها. هدف، کاهش این تفاوتها پیش از انتشار پایدار است و تاریخی اعلام نشده. برای همگام ماندن با بالادست، هر صبح یک عامل هوش مصنوعی تغییرات را بررسی میکند و هر شب ماتریس سازگاری با اجرای تستهای رسمی بازتولید میشود. همچنین برنامه ادغام با پروژه مشابهی به نام tsc-rs مطرح شده است تا یک بسته با پشتیبانی کامل، از جمله LSP، ایجاد شود. مجوز پروژه در پست ذکر نشده و باید در مخزن بررسی شود.
نکات کلیدی
- بنچمارکها در مخزن پروژه قابل بازتولید هستند
- ترتیب خطاها هنوز با tsc تفاوت دارد
- تاریخ انتشار پایدار اعلام نشده
چرا برای برنامهنویسها مهم است؟
زمان type-check در مونوریپوهای بزرگ و CI یکی از گلوگاههای همیشگی است. اگر tsrs به سازگاری بالا برسد، میتواند زمان بیلد و مصرف حافظه را کم کند و ابزارهایی مثل لینترهای آگاه از نوع را عملیتر کند. بیلد Wasm هم راه را برای ادیتورها و محیطهای توسعه درون مرورگر باز میکند.
برای کاربران ایرانی، نکته مثبت این است که ابزار متنباز و از طریق npm قابل نصب است و بنچمارک و اجرای آن کاملاً روی سرور یا سیستم محلی انجام میشود و به سرویس ابری خاصی نیاز ندارد. با این حال چون پروژه آزمایشی است، فعلاً برای پروژههای حساس تولیدی توصیه نمیشود.
جمعبندی
tsrs نمونه تازهای از رقابت بر سر سرعت ابزارهای تایپاسکریپت است. اعداد ۸ برابر و ۷۰ درصد فعلاً ادعای منتشرکنندگان است و تا بازتولید مستقل باید با احتیاط دیده شود؛ اما همکاری اعلامشده با تیم تایپاسکریپت و تمرکز بر سازگاری کامل، آن را به پروژهای قابلپیگیری تبدیل کرده است.
منابع
- Introducing tsrs: a Port of TypeScript to Rust (وبلاگ شرکت CDN)blog.cloudflare.com
این خبر بر اساس منابع بالا به فارسی بازنویسی و خلاصه شده است؛ برای جزئیات کامل به منبع اصلی مراجعه کنید.