Oxc: جعبهابزار سریع جاوااسکریپت با Rust
خلاصهٔ کاملتر
Oxc (اسم کاملش The JavaScript Oxidation Compiler) یه مجموعه ابزار پرسرعت برای جاوااسکریپته که با Rust نوشته شده و VoidZero پشتشه. صفحهٔ اصلی پروژه خودش رو «پایهٔ ابزارهای مدرن جاوااسکریپت» معرفی میکنه و شش جزء داره که هر کدوم جدا قابل استفادهن. تازهترین خبرش هم اضافه شدن پشتیبانی از React Compiler هست.
Oxlint، linter این مجموعه و سازگار با ESLint هست. طبق ادعای پروژه ۵۰ تا ۱۰۰ برابر از ESLint سریعتره، بیشتر از ۸۰۰ قانون داره و از پلاگینهای JS خود ESLint هم پشتیبانی میکنه. لینت type-aware (یعنی قانونهایی که به اطلاعات تایپ TypeScript احتیاج دارن) هم داره که با tsgo، همون نسخهٔ Go کامپایلر TypeScript، کار میکنه. Oxfmt هم formatter سازگار با Prettier هست که هنوز بتاست؛ پروژه میگه ۳۰ برابر از Prettier و ۳ برابر از Biome سریعتره و مرتبسازی کلاسهای Tailwind رو هم داره.
oxc-parser پایهٔ بقیهٔ ابزارهاست. فایلهای .js(x) و .ts(x) رو parse میکنه، همهٔ تستهای stage4 مجموعهٔ Test262 (تستهای رسمی استاندارد جاوااسکریپت) رو پاس میکنه و حدود ۳ برابر از SWC سریعتره. تو بنچمارک parse کردن فایل typescript.js روی MacBook Pro M3 Max، زمان Oxc حدود ۲۶.۳ میلیثانیه بوده، SWC حدود ۸۴.۱ و Biome حدود ۱۳۰.۱ میلیثانیه.
oxc-transform کد TypeScript و JSX رو ترجمه میکنه، syntax رو تا ES2015 پایین میاره، فایلهای DTS رو با Isolated Declarations میسازه و React Fast Refresh و styled-components رو هم پشتیبانی میکنه. oxc-resolver هم resolve کردن ماژولهای CJS و ESM رو مثل Node.js انجام میده، رفتارش رو با enhanced-resolve هماهنگ کرده و ۲۸ برابر ازش سریعتره.
آخرین جزء، oxc-minify هست که هنوز آلفاست و حذف کد مرده، کوتاه کردن syntax و عوض کردن اسم متغیرها رو انجام میده. کل پروژه رایگان و متنبازه و با کمک اسپانسرها جلو میره.
نکات کلیدی:
- Oxlint سازگار با ESLint هست، بیشتر از ۸۰۰ قانون داره و ادعا میکنه ۵۰ تا ۱۰۰ برابر سریعتره.
- Oxfmt هنوز بتاست، با Prettier سازگاره و حدود ۳۰ برابر ازش سریعتره.
- oxc-parser تو بنچمارک typescript.js حدود ۲۶.۳ میلیثانیه زمان برده، در برابر ۸۴.۱ برای SWC.
- oxc-resolver حدود ۲۸ برابر سریعتر از enhanced-resolve هست.
- oxc-minify هنوز آلفاست و Oxc بهتازگی پشتیبانی از React Compiler رو اضافه کرده.




