Bun 1.4 chính thức ra mắt: Hiệu năng vượt trội, viết lại toàn bộ bằng Rust và loạt tính năng mới

Công nghệ20 tháng 8, 2026·5 phút đọc

Bun 1.4 vừa được phát hành với tuyên bố viết lại toàn bộ mã nguồn từ Zig sang Rust, mang lại hiệu suất ấn tượng: giảm CPU khi rảnh 5 lần, giảm bộ nhớ tối đa 35% và khởi động nhanh hơn 50% trên Linux. Phiên bản này cũng bổ sung hàng loạt API và công cụ tích hợp sẵn như Bun.Image, Bun.WebView, Bun.cron, cùng khả năng tương thích Node.js được cải thiện đáng kể với hơn 1.517 bài test mới vượt qua.

Bun 1.4 chính thức ra mắt: Hiệu năng vượt trội, viết lại toàn bộ bằng Rust và loạt tính năng mới

Bun 1.4 chính thức ra mắt: Hiệu năng vượt trội, viết lại toàn bộ bằng Rust và loạt tính năng mới

Bun 1.4 đã chính thức được phát hành, đánh dấu một cột mốc quan trọng khi toàn bộ mã nguồn của toolkit JavaScript/TypeScript này được viết lại từ Zig sang Rust. Phiên bản mới hứa hẹn mang lại hiệu suất vượt trội với mức tiêu thụ CPU khi rảnh giảm 5 lần, bộ nhớ giảm tới 35% và tốc độ khởi động nhanh hơn 50% trên Linux, cùng vô số tính năng và API tích hợp sẵn mới.

Đây là một trong những bản cập nhật lớn nhất của Bun kể từ phiên bản 1.0, với hơn 1.517 bài test mới từ bộ kiểm thử Node.js được thông qua và hơn 2.900 lỗi được sửa. Các nhà phát triển có thể nâng cấp lên Bun 1.4 ngay lập tức bằng lệnh bun upgrade.

Hiệu năng được cải thiện đáng kể

Một trong những điểm nhấn lớn nhất của Bun 1.4 là tối ưu hóa hiệu năng toàn diện. Với các ứng dụng sử dụng HTTP server, mức giảm bộ nhớ đạt từ 13% đến 48% tùy framework. Cụ thể, Fastify giảm tới 48%, trong khi Express và Elysia giảm khoảng 40% so với phiên bản 1.3.

Thời gian khởi động cũng được rút ngắn đáng kể: trên Linux, Bun 1.4 khởi động nhanh gấp đôi và chỉ mất 5.1ms so với 10.9ms của Bun 1.3 và 27.2ms của Node.js 26. Trên Windows, tốc độ khởi động nhanh hơn 2.5 lần. Kích thước binary trên Linux và Windows cũng được giảm tới 17%.

Đồ thị so sánh CPU khi rảnhĐồ thị so sánh CPU khi rảnh

So sánh mức sử dụng CPU khi rảnh của Bun 1.3 và 1.4.

Đối với các ứng dụng chạy dài như Claude Code, mức sử dụng CPU trong production giảm 2 lần (p99 từ 24% xuống 10%). Việc chuyển sang sử dụng mimalloc làm bộ cấp phát bộ nhớ chính cùng các tối ưu hóa về cơ chế garbage collector và giảm số lần gọi futex đã giúp đạt được những con số ấn tượng này.

Viết lại toàn bộ bằng Rust

Điểm đặc biệt nhất của Bun 1.4 là quyết định táo bạo khi viết lại toàn bộ runtime từ Zig sang Rust. Đội ngũ phát triển cho biết bản port Rust này đã được sử dụng trong sản xuất nhiều tháng qua, tiêu biểu là Claude Code và nền tảng Prisma Compute.

Việc chuyển đổi này không chỉ giúp cải thiện hiệu năng mà còn tạo nền tảng vững chắc hơn cho việc phát triển các tính năng trong tương lai.

Tương thích Node.js tốt hơn nhiều

Bun 1.4 ghi nhận bước nhảy lớn nhất về tương thích Node.js kể từ Bun 1.0. Có thêm 1.517 bài test từ bộ kiểm thử Node.js được thông qua, nâng tổng số lên con số ấn tượng. Các module như node:events, node:trace_eventsnode:sqlite đạt 100% tỷ lệ pass, trong khi node:http, node:fs, node:cluster... đạt 97%.

Tiến trình kiểm thử Node.jsTiến trình kiểm thử Node.js

Tỷ lệ pass các bài test từ Node.js test suite của Bun 1.4.

Nhiều framework và thư viện phổ biến giờ đây hoạt động tốt hơn trên Bun, bao gồm Nuxt, Playwright, TypeORM, Fastify inject(), OpenTelemetrydd-trace.

Loạt API và công cụ tích hợp sẵn mới

Bun 1.4 giới thiệu nhiều API được đóng gói sẵn trong binary, loại bỏ nhu cầu cài đặt thêm các dependency phổ biến:

  • Bun.Image: Thư viện xử lý ảnh tích hợp cho phép decode, resize, rotate và encode các định dạng JPEG, PNG, WebP, GIF, BMP. Nhanh hơn 1.38 lần so với sharp trong tác vụ resize ảnh PNG sang JPEG.

  • Bun.WebView: Tự động hóa trình duyệt headless ngay trong Bun mà không cần Puppeteer hay Playwright. Hỗ trợ điều hướng, click, scroll, chạy JavaScript và chụp màn hình.

  • Bun.cron(): Lên lịch các tác vụ định kỳ ở cấp hệ điều hành (crontab trên Linux, launchd trên macOS, Task Scheduler trên Windows).

  • Bun.markdown(): Trình phân tích Markdown tích hợp, hỗ trợ xuất HTML, React elements hoặc tùy chỉnh render cho terminal.

  • Bun.Terminal: Cung cấp pseudo-terminal (PTY) tích hợp, cho phép điều khiển bash, vim, htop từ JavaScript mà không cần node-pty.

Ngoài ra, lệnh bun run --parallel cho phép chạy nhiều script song song với output được prefix theo tên script, thay thế các công cụ như npm-run-allconcurrently.

Stream hiệu năng cao và backpressure

Các API ReadableStream, WritableStreamTransformStream giờ được triển khai native, giúp cải thiện đáng kể hiệu suất và giảm mức sử dụng bộ nhớ. Bun.serve tự động áp dụng cơ chế backpressure — dừng phát dữ liệu khi socket đầy, ngăn chặn tình trạng hết bộ nhớ với các client chậm.

Sơ đồ pipeline xử lý ảnhSơ đồ pipeline xử lý ảnh

Sơ đồ minh họa các pipeline stream trong Bun 1.4.

Benchmark cho thấy throughput của các pipeline stream (download, upload, transcode, subprocess) trong Bun 1.4 vượt trội so với Node.js 26 và Deno 2.9, đồng thời sử dụng ít bộ nhớ hơn.

Quan sát và debug tốt hơn

Bun 1.4 bổ sung các tùy chọn mới giúp việc profiling và debug dễ dàng hơn, đặc biệt hữu ích khi làm việc qua SSH hoặc gửi báo cáo lỗi:

  • bun --cpu-prof-md: Ghi CPU profile dưới dạng Markdown, dễ đọc và tìm kiếm.
  • bun --heap-prof-md: Ghi heap profile dạng Markdown, giúp xác định đối tượng nào đang giữ bộ nhớ.
  • bun build --metafile-md: Phân tích bundle thành Markdown, giúp hiểu vì sao bundle lớn.
  • process.on("memoryPressure"): Nhận thông báo khi hệ điều hành sắp hết bộ nhớ, cho phép giải phóng tài nguyên trước khi bị kill.

Kết luận

Bun 1.4 là một bản phát hành đột phá, khẳng định vị thế của Bun như một toolkit toàn diện cho phát triển JavaScript/TypeScript. Với hiệu năng vượt trội, khả năng tương thích Node.js ngày càng hoàn thiện và bộ tính năng tích hợp phong phú, Bun 1.4 là lựa chọn hấp dẫn cho các nhà phát triển muốn tối ưu hóa workflow của mình. Việc viết lại bằng Rust cũng mở ra tiềm năng phát triển lâu dài cho dự án này trong tương lai.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗