software•

انتشار Bun Blog نسخه ۱.۳.۶: تحلیل عمیق معماری زمان‌های اجرای اصلی

نسخه ۱.۳.۶ وبلاگ Bun را با ۴۵ رفع مشکل، Bun.Archive، تجزیه‌کننده بومی JSONC، بافرهای شتاب‌یافته با SIMD و بهبودهای چشمگیر عملکرد کاوش کنید.

OP
OPA Release DeskWIRE
•5 min read
انتشار Bun Blog نسخه ۱.۳.۶: تحلیل عمیق معماری زمان‌های اجرای اصلی

⚠️ Breaking Changes & Migration Caveats

کاملاً سازگار با نسخه‌های قبلی. پایگاه داده SQLite به نسخه 3.51.2 به‌روزرسانی شده است که سازگاری دقیق با فایل‌های پایگاه داده موجود را حفظ می‌کند.

انتشار Bun Blog نسخه ۱.۳.۶: تحلیل عمیق معماری

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

انتشار نسخه ۱.۳.۶ وبلاگ Bun نقطه عطف مهمی در تکامل زمان‌های اجرای جاوا اسکریپت با عملکرد بالا است که ۴۵ مسئله مجزا را حل کرده و ۱۲۵ درخواست ویژگی مبتنی بر جامعه را در خود جای داده است. این نسخه به تعقیب بی‌وقفه عملکرد بومی توسط Bun ادامه می‌دهد و مرزهای انتظارات توسعه‌دهندگان از یک پشته زیرساخت وب مدرن را جابه‌جا می‌کند. با رفع حالات خاص (edge cases) در سازگاری با Node.js، محکم‌تر کردن زمان‌بندی ناهمگام، و معرفی APIهای بومی برای عملیات‌های رایج بسته‌بندی و آرشیو، نسخه ۱.۳.۶ شکاف بین بهره‌وری سیستم سطح پایین و ارگونومی توسعه‌دهنده سطح بالا را پر می‌کند.

از منظر معماری، این نسخه بر بهینه‌سازی در سطح سخت‌افزار و انتزاع‌های بدون سربار تأکید دارد. با ادغام مستقیم دستورالعمل‌های SIMD (تک‌دستورالعمل، چندداده) در روش‌های اصلی تجزیه بافر و معرفی پری‌میتیوهای بومی قوی مانند Bun.Archive و Bun.JSONC، زمان اجرا چرخه محاسباتی پردازنده را که صرف تبدیل‌های قالبی می‌شود به حداقل می‌رساند. هم شرکت‌ها و هم توسعه‌دهندگان مستقل از کاهش سربار حافظه، زمان‌های ساخت سریع‌تر و قابلیت اعتماد بهبودیافته در تست بهره‌مند خواهند شد و این امر نسخه ۱.۳.۶ را به یک ارتقای ضروری در سطح تولید تبدیل می‌کند.

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

بهبودهای عملکردی در نسخه ۱.۳.۶ در چندین زیرسیستم از موتور جاوا اسکریپت گسترش یافته‌اند. از همه مهم‌تر، مسیرهای اجرای ناهمگام شاهد افزایش ۱۵ درصدی در عملیات‌های async/await بوده‌اند، در حالی که اجرای Promise.race اکنون به دلیل تخلیه بهینه صف ریزوظایف (microtask queue)، ۳۰ درصد سریع‌تر شده است. علاوه بر این، سریال‌سازی Response.json() اکنون ۳.۵ برابر سریع‌تر است و تاخیر را برای نقاط پایانی API با توان عملیاتی بالا به شدت کاهش می‌دهد. بارهای کاری رمزنگاری و هشینگ نیز ارتقای چشمگیری دریافت کرده‌اند، به طوری که Bun.hash.crc32 افزایش عملکرد خیره‌کننده ۲۰ برابری را نشان می‌دهد و Buffer.indexOf و Buffer.includes از شتاب SIMD بهره می‌برند.

در حوزه ابزار دقیق و ارگونومی توسعه‌دهنده، نسخه ۱.۳.۶ ابزار Bun.Archive را برای ایجاد و استخراج بومی فایل‌های tarball با فشرده‌سازی gzip معرفی می‌کند، در کنار Bun.JSONC برای تجزیه بومی فایل‌های JSON حاوی نظرات (comments). ابزار بسته‌بندی (Bun.build) اکنون شامل گزینه‌های metafile و files برای تحلیل عمیق بسته و مدیریت فایل مجازی است. قابلیت‌های شبکه با پشتیبانی داخلی پروکسی HTTP/HTTPS برای WebSockets و پشتیبانی S3 Requester Pays بیشتر گسترش یافته‌اند. جریان‌های کاری تست نیز با پرچم جدید --grep در bun test و سازگاری کامل تایمرهای جعلی با @testing-library/react ساده‌سازی شده‌اند.

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

معیار عملکرد / ویژگی مبنای قبلی پیاده‌سازی Bun نسخه ۱.۳.۶ تأثیر معماری
تأخیر Response.json() سربار پایه سریال‌سازی ۳.۵ برابر سریع‌تر به طور چشمگیری TTFB را برای APIهای JSON کاهش می‌دهد
زمان‌بندی Async/Await صف ریزوظایف استاندارد کاهش ۱۵ درصدی در سربار توزیع اجرای روان‌تر تحت همزمانی بالا
وضوح Promise.race ردیابی استاندارد حل سریع‌تر ۳۰ درصدی شرایط مسابقه مدیریت سریع‌تر زمان‌توقف (timeout) و بازگشتی (fallback)
هشینگ CRC32 حلقه مبتنی بر نرم‌افزار ۲۰ برابر سریع‌تر از طریق توابع بهینه‌سازی شده اعتبارسنجی مجموع بررسی (checksum) تقریبا آنی
جستجوی بافر پویش بایت ترتیبی indexOf/includes شتاب‌یافته با SIMD استفاده کمتر از پردازنده در محموله‌های بزرگ

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

نسخه ۱.۳.۶ وبلاگ Bun با نسخه‌های قبلی ۱.x کاملاً سازگار است و تضمین می‌کند که برنامه‌های کاربردی تولیدی موجود می‌توانند بدون تغییرات ساختارشکن در APIهای اصلی انتقال یابند. با این حال، توسعه‌گرانی که از اتصالات داخلی SQLite استفاده می‌کنند باید به به‌روزرسانی نسخه SQLite به 3.51.2 توجه داشته باشند. در حالی که این به‌روزرسانی با فایل‌های پایگاه داده استاندارد سازگار است، برنامه‌هایی که به رفتارهای خاص SQLite در حالات خاص یا رابط‌های افزونه خاص متکی هستند، باید قبل از استقرار کامل در محیط تولید، مجموعه‌های تست یکپارچه‌سازی دقیق را اجرا کنند.

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

به‌روزرسانی محیط خود برای بهره‌گیری از ویژگی‌های جدید در Bun نسخه ۱.۳.۶ ساده است. برای ارتقای زمان اجرای خود و شروع استفاده از APIهای جدید مانند Bun.Archive و Bun.JSONC، این مراحل را دنبال کنید.

گام ۱: ارتقای رابط خط فرمان Bun

دستور ارتقای رسمی را در ترمینال خود اجرا کنید تا آخرین باینری نسخه ۱.۳.۶ دریافت شود:

bun upgrade

گام ۲: استفاده از تجزیه بومی JSONC

وابستگی‌های خارجی برای تجزیه فایل‌های پیکربندی را با API بومی Bun.JSONC جایگزین کنید:

import { Bun } from "bun";

const configFile = await Bun.file("./tsconfig.json").text();
const parsedConfig = Bun.JSONC.parse(configFile);

console.log(parsedConfig.compilerOptions);

گام ۳: عملیات‌های آرشیو

از ابزار جدید Bun.Archive برای مدیریت tarball بدون وابستگی در اسکریپت‌های ساخت خود بهره ببرید:

import { Bun } from "bun";

// ایجاد یک tarball فشرده
await Bun.Archive.create({
  output: "./dist.tar.gz",
  files: ["./build/index.js", "./package.json"],
  compression: "gzip"
});
#Bun Blog#v1.3.6#software#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