uf: ابزار یکپارچهی React برای Flow
خلاصهٔ کاملتر
uf یه toolchain تازهست که میخواد کل زنجیرهی توسعهی اپهای React مبتنی بر Flow (زبان تایپ فیسبوک) رو تو یه باینری راست جمع کنه: dev server، build، تست، فرمتدهی و lint، همه زیر یه دستور. بهجای اینکه Vite، بابل، ESLint و Vitest رو جدا جدا تنظیم کنی، فقط یه فایل uf.config.js داری که چون به زبان Flow نوشته میشه، مثل بقیهی کدت type-check هم میشه.
طبق مستندات پروژه، نصب و راهاندازی به همین سادگیه:
uf new my-site
cd my-site && uf devنه نیاز به npm install جدا برای toolchain هست، نه configای که از یه جای دیگه کپی کنی.
زیر پوشش، uf از parser رسمی Flow و React Compiler خود متا استفاده میکنه، بهعلاوهی oxc، و اینها رو مستقیم تو باینری خودش لینک کرده؛ یعنی نه Babel وسطه، نه پلاگین جدا برای Flow. برای build و dev server هم از Vite 8 واقعی استفاده میکنه، نه یه فورک ازش؛ فقط ارتباط باهاش رو از طریق یه پروتکل JSON مدیریت میکنه تا اکوسیستم پلاگین Vite دستنخورده بمونه.
بخش تست هم جالبه: تشخیص فایلها، ترتیب اجرا و مدیریت worker pool رو Rust انجام میده و فقط بدنهی تست رو به Node/Bun/Deno میده. نویسندهها میگن این کار تستها رو حدود ۹ برابر از Vitest سریعتر کرده، ولی صادقانه اعتراف میکنن که هنوز حدود ۳ برابر از Bun کندتره.
uf میتونه رو Node.js، Bun یا Deno اجرا بشه چون این سهتا رو بهعنوان قابلیت میبینه نه هدف ثابت؛ خودش از هاست میپرسه چیکار میتونه بکنه و بر اساسش تصمیم میگیره. نکتهی مهم اینه که uf هنوز نسخهی 0.0.0-alphaست و هر پکیج @uniflowed/* رو npm با تگ alpha منتشر میشه، یعنی رابطهاش میتونه هر لحظه بدون هشدار عوض بشه.
نکات کلیدی:
- uf یه باینری راسته که dev، build، تست، فرمت و lint رو زیر یه دستور جمع میکنه
- از parser رسمی Flow، React Compiler و oxc استفاده میکنه، بدون Babel
- build و dev server واقعاً رو Vite 8 سوارن، نه یه فورک ازش
- تستها حدود ۹ برابر سریعتر از Vitest ولی حدود ۳ برابر کندتر از Bun گزارش شده
- فعلاً نسخهی alphaست (0.0.0-alpha) و رابطهاش میتونه بدون هشدار عوض بشه




