Bun 1.4.1 با رفع ۲۰۲ باگ و کاهش بزرگ مصرف حافظه اومد
خلاصهٔ کاملتر
به گفتهٔ تیم Bun، این نسخه ۲۰۲ ایشو رو رفع کرده. یکی از مهمترین تغییرها مربوط به مصرف حافظهست: موتور JavaScriptCore حالا بعد از یه دورهٔ بیکاری طولانی، کدهای JIT ساختهشده رو حذف میکنه. طبق اندازهگیری خودشون، یه اپ Next.js که ۶۰ ثانیه بار داشته و بعد ۳ دقیقه بیکار مونده، مصرف RAMش از ۱۳۰۳ مگابایت (توی Bun 1.3.14) به ۱۴۲ مگابایت رسیده.
Bun.serve حالا همزمان روی یه پورت از HTTP/1.1 و HTTP/2 پشتیبانی میکنه؛ پروتوکل روی TLS با ALPN تشخیص داده میشه. Bun.write هم دیگه یه Response یا ReadableStream رو کامل توی حافظه نمیریزه و مستقیم استریمش میکنه روی دیسک؛ نوشتن یه فایل ۱۲۸ مگابایتی که قبلا ۱۶۱ مگابایت به peak RSS اضافه میکرد، الان فقط ۱۳ مگابایت اضافه میکنه.
یه اصلاح امنیتی مهم هم توی fetch انجام شده. قبلا اگه یه هدر Host دستی میفرستادی، Bun گواهی TLS رو در برابر همون Host چک میکرد نه آدرس واقعی درخواست - رفتاری که با استاندارد Node و curl فرق داشت و میتونه برای پراکسیهایی که هدر Host رو از ورودی کاربر میسازن خطرناک باشه. الان چک TLS همیشه بر اساس hostname واقعی URL انجام میشه.
چندتا بهبود دیگه هم اومده: WebSocket سمت کلاینت حالا متد pause و resume داره تا بشه جریان پیامها رو موقتا نگه داشت، node:crypto از argon2 پشتیبانی میکنه، متدهای خوندن و نوشتن Buffer تا ۹ برابر سریعتر شدن، و اولین اتصال HTTPS یه پروسه هم تا ۳ برابر سریعتر برقرار میشه چون Bun گواهیهای ریشه رو بهصورت از پیش پردازششده نگه میداره.
نکات کلیدی:
- ۲۰۲ باگ رفع شده در این نسخه
- مصرف حافظهٔ idle یه اپ Next.js تا ۹ برابر کم شده
- Bun.serve حالا HTTP/2 رو روی همون پورت HTTP/1.1 پشتیبانی میکنه
- اصلاح امنیتی: چک TLS دیگه از هدر Host تاثیر نمیگیره
- Buffer read/write تا ۹ برابر و اولین اتصال HTTPS تا ۳ برابر سریعتر شده




