Nub؛ همهٔ ابزارهای Node توی یک جعبه
خلاصهٔ کاملتر
Nub یه ابزارِ جدیده که خودش رو یه جعبهابزارِ همهکاره برای Node.js معرفی میکنه؛ بهجای اینکه یه رانتایمِ تازه مثلِ Bun یا Deno باشه، روی همون node استاندارد سوار میشه و بهش یه تجربهٔ توسعهٔ بهتر اضافه میکنه. با Rust نوشته شده، ادعاش اینه که نه API اختصاصی داره نه قفلِ فروشنده، و میخواد کارِ چند تا ابزارِ جدا رو یکجا انجام بده:
nub index.ts # TypeScript-first Node.js runtime
nub run dev # 24× faster pnpm run
nubx prisma generate # 19× faster npx
nub install # 2.5× faster pnpm installبخشِ اجرای فایل، یعنی nub ، جای node و tsx و ts-node رو میگیره و میتونه فایلهای .ts، .tsx، .mjs و بقیه رو بدونِ مرحلهٔ build اجرا کنه. تایپاسکریپتِ کامل، JSX، دکوریتورها، لودِ خودکارِ فایلهای .env و پالیفیل برای APIهای مدرن مثلِ Temporal رو پشتیبانی میکنه و تو مقاله اومده که زمانِ شروعش حدودِ ۲.۹ برابر از tsx سریعتره.
نکتهٔ جالبش اینه که برای این کارها رانتایم رو دستکاری نمیکنه، بلکه از قلابهای خودِ Node استفاده میکنه؛ مثلِ preloadها با --import/--require، تابعِ module.registerHooks() برای ترنسپایل و ریزالو، و addonهای نیتیوِ N-API که داخلشون موتورِ oxc رو جاسازی کرده. حتی نسخهٔ Node موردنیازِ پروژه رو از روی فایلهایی مثلِ .nvmrc تشخیص میده و خودکار نصبش میکنه.
بقیهٔ بخشها هم دورِ سرعت میچرخن. nub run جای npm run رو میگیره و چون یه باینریِ Rust بدونِ بوتاسترپِ جاوااسکریپته، حدودِ ۲۴ برابر سریعتر از pnpm run اسکریپت اجرا میکنه. nubx هم معادلِ npx هست و ادعا شده چون سربارِ دوباره اجراشدنِ Node رو حذف میکنه، تقریباً ۱۹ برابر تندتر عمل میکنه. نصبِ پکیج هم با موتورِ Aube انجام میشه و flag به flag با pnpm سازگاره.
بخشِ مدیریتِ پکیج چند قابلیتِ امنیتیِ پیشفرض داره: اسکریپتهای postinstall رو بهصورتِ پیشفرض بلاک میکنه، موقعِ ریزالو نسخههای شناختهشدهٔ مخرب رو از روی osv.dev چک میکنه و یه فاصلهٔ ۲۴ ساعته برای انتشارِ پکیج (minimumReleaseAge) میذاره. ضمناً وقتی داخلِ یه پروژه اجرا بشه، مدیرِ پکیجِ فعلی رو تشخیص میده و تو حالتِ سازگاری، فایلهای کانفیگِ همون ابزار — npm، pnpm، yarn یا bun — رو میخونه.
برای CI هم اکشنِ nubjs/setup-nub معرفی شده که جای actions/setup-node میشینه و میگن یکبهیک باهاش سازگاره. مجوزِ کلِ پروژه هم MIT هست.
نکات کلیدی:
- با Rust نوشته شده و بهجای جایگزینی، خودِ Node استاندارد رو تقویت میکنه
- یه ابزار برای اجرای فایل، اجرای اسکریپت، نصبِ پکیج و مدیریتِ نسخهٔ Node
- اجرای اسکریپت تا ۲۴ برابر و nubx تا ۱۹ برابر سریعتر از معادلهای جاوااسکریپتی
- قابلیتهای امنیتیِ پیشفرض: بلاکِ postinstall، چکِ osv.dev و minimumReleaseAge
- سازگاری با کانفیگِ npm، pnpm، yarn و bun و اکشنِ setup-nub برای CI




