ابزارهای توسعه•

انتشار نسخه v1.2.17 از Bun: بسته‌بندی پیش‌فرض (AOT) پیشرفته، بهینه‌سازی‌های SQLite و بهبود حافظه

بررسی انتشار نسخه v1.2.17 از Bun: بسته‌بندی HTML به روش AOT، انواع ستون‌ها در SQLite، کاهش ۸ تا ۱۵ درصدی سربار حافظه تایمر و بهبود سازگاری با Node.js.

OP
OPA Release DeskWIRE
•4 min read
انتشار نسخه v1.2.17 از Bun: بسته‌بندی پیش‌فرض (AOT) پیشرفته، بهینه‌سازی‌های SQLite و بهبود حافظه

⚠️ Breaking Changes & Migration Caveats

سازگاری کامل با نسخه‌های قبلی. هیچ تغییر ساختارشکنی معرفی نشده است، هرچند دستور bun info جایگزین bun pm view شده است.

نسخه Bun v1.2.17: تحلیل معماری انتشار

نمای کلی اجرایی و اهمیت معماری

نسخه v1.2.17 از Bun نقطه عطف مهمی در فاز تثبیت این ران‌تایم محسوب می‌شود که تمرکز اصلی آن روی کاهش مصرف منابع، افزایش تطابق با APIهای Node.js و گسترش قابلیت‌های بسته‌بندی بومی است. این نسخه شامل رفع بیش از ۵۰ مشکل در گیت‌هاب است که با حدود ۸۰ رأی مثبت از سوی جامعه توسعه‌دهندگان پشتیبانی می‌شود و ۲۴ تست جدید را به مجموعه تست‌های یکپارچه Node.js اضافه می‌کند. برای تیم‌های مهندسی سازمانی که برای ریزسرویس‌های با توان عملیاتی بالا و برنامه‌های وب فول‌استک به Bun اتکا دارند، این نسخه اصطکاک عملیاتی را کاهش داده و حالات خاص (edge cases) در اجرای ناهمگام (asynchronous) و تعاملات پایگاه داده را برطرف می‌کند.

از منظر معماری، معرفی بسته‌بندی پیش‌هنگام (AOT) برای ایمپورت‌های HTML یک تغییر پارادایم محسوب می‌شود. به‌جای موکول کردن تحلیل دارایی‌ها صرفاً به زمان اجرا، Bun اکنون درخت دارایی‌ها را در فاز بیلد (ساخت) بهینه‌سازی می‌کند و سربار را در استقرار‌های پروداکشن به حداقل می‌رساند. این نسخه با ترکیب بهینه‌سازی‌های قابل‌توجه حافظه در زیرسیستم‌های تایمر و ارکستراسیون قوی‌تر شل، تعهد تیم مهندسی هسته به تنظیم عملکرد سطح پایین را بدون قربانی کردن ارگونومی توسعه‌دهنده یا سازگاری با اکوسیستم نشان می‌دهد.

بهینه‌سازی‌های هسته و ارگونومی توسعه‌دهنده

یکی از برجسته‌ترین دستاوردهای مهندسی در نسخه v1.2.17، بهینه‌سازی پری‌میتیوهای اصلی تایمر است. توابع setTimeout و setImmediate به‌گونه‌ای بازنویسی شده‌اند که در حلقه‌های رویداد طولانی‌مدت، ۸ تا ۱۵ درصد حافظه کمتری مصرف کنند. این کاهش با بهینه‌سازی ساختارهای صف داخلی و کاهش سربار تخصیص حافظه در لایه اتصال JavaScript به بومی (native) حاصل شده است و تسکین فوری حافظه را برای برنامه‌های سمت سرور که هزاران تایمر همزمان و تسک ناهمگام را مدیریت می‌کنند، فراهم می‌کند.

در حوزه ارگونومی توسعه‌دهنده و پایداری داده‌ها، بخش bun:sqlite با معرفی پشتیبانی از columnTypes و declaredTypes ارتقاهای قدرتمندی دریافت کرده است. این اضافات به توسعه‌دهندگان اجازه می‌دهد تا اسکیماهای پایگاه داده و وابستگی‌های نوع زیربنایی را به صورت برنامه‌نویسی و با دقت بالاتری بررسی کنند و شکاف بین اجرای خام SQL و ORMهای تایپ‌شده مدرن را پر کنند. علاوه بر این، جریان‌های کاری مدیریت پکیج ساده‌تر شده‌اند: دستور bun info رسماً جایگزین bun pm view شده و تجربه یکپارچه‌تری در رابط خط فرمان (CLI) ارائه می‌دهد. سازگاری با Node.js نیز با پیاده‌سازی tls.getCACertificates()، بهبودهای مستحکم در child_process.fork()، اختیاری کردن گزینه‌های fs.glob، و یک قابلیت هوشمندانه در جریان کاری که در صورت شناسایی ابزار Claude Code در محیط، به‌طور خودکار فایل پیکربندی CLAUDE.md را توسط bun init فراهم می‌کند، جهش بزرگی به جلو داشته است.

ماتریس مقایسه معماری

ویژگی / معیار مبنای قبلی (v1.2.x) Bun v1.2.17 تأثیر معماری
بسته‌بندی ایمپورت HTML تحلیل در زمان اجرا / پردازش پایه پردازش پیش‌هنگام (AOT) سربار بسته‌ی راه‌اندازی اولیه را کاهش داده و درخت‌های دارایی پروداکشن را بهینه‌سازی می‌کند.
فضا و مصرف حافظه تایمر پروفایل تخصیص استاندارد کاهش ۸ درصدی تا ۱۵ درصدی برای تایمرها فشار روی Heap را در حلقه‌های رویداد با همزمانی بالا کاهش می‌دهد (setTimeout، setImmediate).
بررسی اسکیما در SQLite اجرای دستورات پایه توابع بومی columnTypes و declaredTypes امکان نگاشت پیشرفته و امن از نظر نوع (Type-safe) پایگاه داده و درون‌نگری اسکیما را فراهم می‌کند.
CLI مدیریت پکیج پراکنده (bun pm view) یکپارچه (bun info) جریان‌های کاری توسعه‌دهنده و کشف دستورات را ساده‌تر می‌کند.
تطابق با Node.js (tls) فقدان بازیابی گواهی‌های CA پیاده‌سازی کامل (tls.getCACertificates()) پیکربندی‌های پیشرفته سوکت امن را برای شبکه‌سازی سازمانی آزاد می‌کند.

تغییرات ساختارشکن و نکات مهاجرت

نسخه v1.2.17 از Bun با نسخه‌های قبلی در سری v1.x کاملاً سازگار است (Backward-compatible). هیچ تغییر ساختارشکنی در APIها یا منسوخ کردن اجباری نحو (syntax) در این پچ معرفی نشده است. پیکربندی‌های موجود، فایل‌های قفل (lockfiles) و اسکریپت‌های استقرار بدون نیاز به تغییر به کار خود ادامه خواهند داد. توسعه‌دهندگانی که از bun pm view استفاده می‌کنند متوجه خواهند شد که این دستور به نفع bun info منسوخ شده است، البته نام مستعار قدیمی (legacy aliases) برای جلوگیری از اختلال در خطوط لوله بیلد (build pipeline) در طول مهاجرت موقتاً به کار خود ادامه می‌دهند.

راهنمای گام‌به‌گام ارتقا

ارتقا به نسخه v1.2.17 از Bun با استفاده از مکانیزم ارتقای رسمی تنها چند ثانیه طول می‌کشد. برای به‌روزرسانی محیط‌های توسعه محلی و CI/CD خود، این مراحل را دنبال کنید:

  1. ارتقای باینری Bun به آخرین نسخه:

    bun upgrade
    
  2. بررسی نسخه نصب‌شده:

    bun --version
    # خروجی مورد انتظار: 1.2.17
    
  3. استفاده از دستور CLI جدید bun info در جریان کاری خود:

    bun info <package-name>
    
#Bun#v1.2.17#DevTools#Release#Changelog
E-E-A-T VerifiedRelease Intelligence & Editorial Methodology

OPA Release analyzes upstream repository commits, official changelogs, and runtime telemetry assisted by automated synthesis pipelines and verified under our Editorial Standards. Review our Affiliate Disclosure and Software Disclaimer before deploying changes to production environments.

OPA NETWORK EXPLORER

Deep Dive Across the Ecosystem

انتشار نسخه v1.2.17 از Bun: بسته‌بندی پیش‌فرض (AOT) پیشرفته، بهینه‌سازی‌های SQLite و بهبود حافظه