nanobrew: پکیج منیجر macOS به سرعت برق
خلاصهٔ کاملتر
nanobrew یه پکیج منیجر برای macOS هست که با زبان Zig ساخته شده و ادعای سریعترین پکیج منیجر مک رو داره. در تستهای روی Apple Silicon و macOS 15، نصب گرم (cached) بستهی ffmpeg با ۱۱ وابستگی فقط ۳.۵ میلیثانیه طول کشید — در مقابل ۲۴.۵ ثانیهی Homebrew. این یعنی چیزی حدود ۷۰۰۰ برابر سریعتر.
اما چرا اینقدر سریعه؟ چند تکنیک کلیدی پشتش هست. اول، از APFS clonefile استفاده میکنه — یه سیسکال مک که فایلها رو با copy-on-write کپی میکنه، یعنی عملاً هیچ فضای اضافهای روی دیسک مصرف نمیشه. دوم، همه چیز موازی اجرا میشه: دانلود، extract، relocation و resolution وابستگیها همزمان پیش میرن.
یه مزیت مهم دیگه اینه که nanobrew یه باینری استاتیک تکفایله — نه Ruby runtime میخواد، نه interpreter startup. حجمش حدود ۲ مگابایته. به جای فراخوانی ابزارهایی مثل curl یا otool، همه چیز رو native انجام میده: HTTP client خودش رو داره، هدر Mach-O رو مستقیم میخونه، و SHA256 رو همزمان با دانلود چک میکنه.
از نظر امنیت هم نسخهی v0.1.082 بد نبوده — ۲۱ آسیبپذیری رفع شده که شامل RCE، path traversal، shell injection در decompression، و JSON injection در دیتابیس میشه. قبلاً self-update با روش curl|bash انجام میشد که خودش یه ریسک امنیتی بود.
نمونهای از نصب واقعی با nanobrew:
$ nb install jq
==> Resolving dependencies... [38ms]
==> Installing 1 package(s): jq 1.7.1
==> Downloading + installing 1 packages...
✓ jq
==> Done in 1102.4msدر نسخههای جدیدتر (v0.1.190 به بعد) چیزهایی مثل nb migrate برای ایمپورت از Homebrew، nb bundle install برای پشتیبانی از Brewfile، و nb info --cask هم اضافه شدن. نسخهی v0.1.191 هم Apple-notarized شده، یعنی دیگه با Gatekeeper مشکل نداری.
نکات کلیدی:
- تا ۷۰۰۰ برابر سریعتر از Homebrew در نصبهای cached
- نوشتهشده با Zig، باینری استاتیک ~۲ مگابایت، بدون نیاز به Ruby
- APFS clonefile برای صفر overhead دیسکی
- ۲۱ آسیبپذیری امنیتی در v0.1.082 رفع شده
- پشتیبانی از migrate از Homebrew، Brewfile، و cask metadata




