۲۸ مهر ۱۴۰۵ blog.cloudflare.com ۳ دقیقه مطالعه

پروژه tsrs؛ پورت کامپایلر تایپ‌اسکریپت به زبان Rust

پروژه tsrs؛ پورت کامپایلر تایپ‌اسکریپت به زبان Rust — Tsrs: A Port of TypeScript to Rust

خلاصه

شرکت Cloudflare با همکاری سایر توسعه‌دهندگان، پروژه tsrs را به عنوان پورت کامپایلر TypeScript به زبان Rust معرفی کرده است. این ابزار با هدف افزایش چشمگیر سرعت و کاهش مصرف حافظه توسعه یافته و امکان اجرای کامل ابزارهای توسعه در مرورگر و لبه شبکه را فراهم می‌کند.

توسعه‌دهندگان وب همیشه به دنبال ابزارهای سریع‌تر بوده‌اند و زمان انتظار برای کامپایل و نوع‌سنجی (Type Checking) کدها همواره یکی از چالش‌های اصلی بوده است. حالا در همکاری جدیدی میان Cloudflare، تیم VoidZero و مکس شنک از Owner.com، پروژه‌ای به نام tsrs معرفی شده است که یک پورت کاملاً بومی از کامپایلر TypeScript به زبان Rust به شمار می‌رود. این پروژه تحت چتر اکوسیستم کامپایلر جاوا اسکریپت یعنی Oxc انکوباتور می‌شود.

زمینه و ضرورت وجودی

تا مدت‌ها کامپایلر اصلی TypeScript با جاوا اسکریپت نوشته شده بود که محدودیت‌های سرعتی خود را داشت. تیم TypeScript خودش دست به کار شد و نسخه Go را ارائه داد که توانست عملکرد را بسیار بهبود ببخشد. با این حال، با ظهور مدل‌های هوش مصنوعی پیشرفته، انجام پورت‌های بزرگ در زمان کوتاه بسیار راحت‌تر شده است و تقاضا برای ابزارهای سریع‌تر در اکوسیستم روزبه‌روز افزایش می‌یابد.

نکته بسیار مهم این است که tsrs یک فورک (Fork) محسوب نمی‌شود. طراحان این پروژه تأکید دارند که کنترل کامل زبان و جهت‌گیری آن باید در دست تیم اصلی TypeScript باقی بماند. هدف، بازسازی وفادارانه منطق آن‌ها در زبانی دیگر است تا سازگاری کاملاً حفظ شود.

چرا زبان Rust و مزیت WebAssembly؟

شاید این سوال پیش بیاید که وقتی نسخه Go وجود دارد، چرا پورت کردن به Rust اهمیت دارد؟ پاسخ اصلی در قابلیت‌های منحصربه‌فرد Rust برای کامپایل به WebAssembly (یا همان Wasm) نهفته است:

  • مدیریت حافظه: وقتی کدهای Go به Wasm کامپایل می‌شوند، باید روبیج کالکتور (Garbage Collector) خود زبان Go نیز همراه آن منتقل شود که حجم خروجی را بزرگ‌تر و تعاملات حافظه را پیچیده‌تر می‌کند.
  • بهینه‌سازی در Cloudflare Workers: معماری حافظه در Rust اجازه تعاملات بسیار روان بین میزبان و مهمان در Wasm را می‌دهد.
  • اجرای سمت کلاینت: با این ویژگی می‌توان محیط‌های کامل توسعه را نه فقط روی سرور، بلکه به‌صورت کاملاً ایزوله داخل مرورگر کاربر، دستگاه‌های لبه شبکه (Edge) یا اینترنت اشیاء (IoT) اجرا کرد.

جزئیات فنی و عملکرد

بنچمارک‌های اولیه نشان می‌دهند که tsrs عملکرد فوق‌العاده‌ای دارد:

  • نسبت به نسخه‌های سنتی، تا ۸ برابر سریع‌تر اجرا می‌شود.
  • حدود ۷۰ درصد مصرف حافظه کمتری دارد.
  • برخی بهینه‌سازی‌های آن حتی به نسخه اصلی Go نیز راه یافته‌اند و به بهبود عملکرد کل اکوسیستم کمک کرده‌اند.

توسعه‌دهندگان این پروژه برای همگام‌سازی مداوم با نسخه اصلی، از ایجنت‌های هوش مصنوعی و اتوماسیون پیشرفته برای بررسی تغییرات کدهای بالادستی (Upstream) استفاده می‌کنند تا مطمئن شوند رفتار کامپایلر دچار واگرایی نمی‌شود.

چرا برای مهندسان اهمیت دارد؟

بحث‌های داغی در Hacker News پیرامون این موضوع شکل گرفته است؛ از جمله کاربران اشاره کرده‌اند که با وجود گزینه‌های مختلفی مثل tsgo-rs و ابزارهای مشابه، دیدن ورود ابزارهای مبتنی بر Rust به این حوزه هیجان‌انگیز است و برخی پیشنهاد می‌کنند مایکروسافت خود مستقیماً روی Rust سرمایه‌گذاری کند. برای مهندسان نرم‌افزار، این یعنی در آینده نزدیک می‌توانیم انتظار ابزارهای Linters هوشمندتر، ابزارهای بیلد بسیار سریع‌تر و قابلیت اجرای ابزارهای سنگین فرانت‌اند در محیط‌های امن‌تر و مدرن‌تر را داشته باشیم.

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

خبرهای فناوری در قالب پست و ویدیوی کوتاه، در اینستاگرام هکرنیوز بلاگ. به‌زودی
هر خبر به محض انتشار، به‌همراه پادکست روزانه در کانال تلگرام هکرنیوز بلاگ.