Yuku: تولچین جاوااسکریپت که با Zig نوشته شده
خلاصهٔ کاملتر
Yuku یک زنجیرهٔ ابزار (toolchain) کامپایلر برای جاوااسکریپت و تایپاسکریپته که از پایه با زبان Zig نوشته شده. تو مستندات پروژه اومده که هدفش سه چیزه: درستی، سرعت و شفافیت — و در عمل داره ابزار مدرن دنیای جاوااسکریپت رو به اکوسیستم Zig هم میآره. یک playground آنلاین هم برای امتحان کردنش هست.
اولویت اولی که روش تأکید میشه درستیه. Yuku رو ۱۰۰٪ سازگار با استاندارد ECMAScript معرفی میکنن: کل parser test suite پروژه رو پاس میکنه، بهعلاوهٔ دهها هزار کیس از Test262 و تستهای TypeScript و Babel، با تطابق دقیق AST و بدون هیچ خطا یا اختلاف.
نکتهٔ دوم اینه که کل تولچین Zig خالصه: نه کتابخانهٔ C خارجی، نه وابستگی زمان اجرا. همین باعث میشه بیلد کردن، امبد کردن و کراسکامپایل کردنش ساده باشه. پشتیبانی از قابلیتهای مدرن و آزمایشی جاوااسکریپت هم کامله؛ مثل decorators، source phase imports، deferred imports و اعلانهای using و await using.
وضعیت فعلی: پارسر فایلهای .js(x) و .ts(x) پایدار و آمادهٔ استفادهٔ پروداکشن اعلام شده، هم تو Node.js و هم تو Zig، با API پایدار. مدل معنایی (semantic model) و traverser هم پایدارن و همین حالا موتور semantic checker خود Yuku رو تو پروداکشن میگردونن.
روی سرعت، ادعای پروژه اینه که تو پارس نیتیو — یعنی مقایسه با ابزارهای Zig/Rust — از Oxc سریعتره و حدود ۲ برابر SWC؛ و روی سمت جاوااسکریپت و پکیج npm بین ۳ تا ۱۰ برابر جایگزینها. پارسر با اصول data-oriented design ساخته شده و روی مهندسی performance حساب باز کرده.
جالبترین بخش توضیح اینه که چرا Oxc تو بنچمارک npm کند و حتی از Babel عقبتر ظاهر میشه: پکیج npm اون AST رو سمت Rust به رشتهٔ JSON سریالایز میکنه و سمت جاوااسکریپت JSON.parse میکنه. چون فیلد program یک getter ـه، این هزینه فقط وقتی پرداخت میشه که واقعاً به AST دست بزنی — و هرچی فایل بزرگتر بشه سنگینتر میشه. بنچمارک Yuku زمان رسیدن به AST کامل رو اندازه میگیره، نه فقط صدا زدن parse.
راهحل Yuku اینه که AST از اول تخت، جمعوجور و نزدیک به باینری طراحی شده تا انتقالش از Zig به جاوااسکریپت سبک و سریع باشه، بدون دست زدن به هستهٔ پارسر. نویسنده میگه comptime زبان Zig این کارو از پایه ایمن میکنه، تخصیص حافظه فقط به اندازهٔ سورس واقعیه و خبری از تخصیصهای چندگیگابایتی نیست. البته خودشون تأکید میکنن که این نسخه هنوز اولیهست و بهبودهای بیشتری برای سرعت انتقال AST در راهه.
نکات کلیدی:
- تولچین جاوااسکریپت/تایپاسکریپت کاملاً نوشتهشده با Zig، بدون وابستگی خارجی
- ۱۰۰٪ سازگار با ECMAScript؛ پاس کردن Test262 و تستهای TypeScript و Babel با تطابق دقیق AST
- پارسر js/ts و همچنین semantic model و traverser پایدار و آمادهٔ پروداکشن
- سرعت: جلوتر از Oxc تو پارس نیتیو، حدود ۲ برابر SWC، و ۳ تا ۱۰ برابر رقیبها روی npm
- AST تخت و نزدیکبهباینری، برای انتقال کمهزینه بین Zig و جاوااسکریپت




