Phát hành Bun 1.3
(bun.sh)- Bun 1.3 là một bản phát hành quy mô lớn, phát triển thành runtime JavaScript full-stack hỗ trợ cả phát triển frontend lẫn backend
- Các tính năng chính đã được tích hợp như máy chủ phát triển frontend tích hợp sẵn bao gồm React và CSS bundling, cùng client MySQL·PostgreSQL·SQLite·Redis
- Hỗ trợ biên dịch thành tệp thực thi đơn qua
bun buildcùng ký mã và cross-compilation, giúp cải thiện đáng kể sự thuận tiện khi triển khai - Trình quản lý gói bổ sung các tính năng thân thiện với monorepo lớn như isolated installs, Security Scanner API, và dependency catalog
- Những cải tiến lớn đã được thực hiện ở gần như mọi lĩnh vực như test runner, Web API, bảo mật, khả năng tương thích Node.js và hiệu năng, giúp Bun vươn lên thành một “nền tảng runtime hoàn chỉnh”
Tích hợp runtime full-stack
- Bun 1.3 tích hợp các khả năng phát triển full-stack như chạy HTML, định tuyến, hot reload, WebSocket vào
Bun.serve()- Hỗ trợ React Fast Refresh và HMR gốc
- Hợp nhất máy chủ backend và frontend vào một tiến trình duy nhất để giải quyết tận gốc vấn đề CORS
- Có thể dùng
bun build --compileđể bundle frontend và backend thành một tệp thực thi duy nhất
Hỗ trợ cơ sở dữ liệu và Redis
- Bun.SQL hỗ trợ hợp nhất MySQL·MariaDB·PostgreSQL·SQLite thông qua một API duy nhất
- Dễ dàng xử lý kiểu mảng của PostgreSQL thông qua helper
sql.array - Các cải tiến chi tiết như kết nối Unix domain socket, simple query protocol, xử lý null
- Dễ dàng xử lý kiểu mảng của PostgreSQL thông qua helper
- Bổ sung client Redis tích hợp sẵn, cho hiệu năng cao hơn tối đa 7.9 lần so với ioredis, hỗ trợ đầy đủ Pub/Sub
Bundler và tính năng build
- API
Bun.build()cho phép tạo tệp thực thi ngay trong mã nguồn - Hỗ trợ ký mã (macOS·Windows), cross-compilation (Linux/macOS/Windows), và thiết lập metadata
- Minifier thông minh hơn giúp loại bỏ mã không dùng, cùng các tùy chọn cấu hình JSX và hỗ trợ pattern Glob
Mở rộng tính năng quản lý gói
- Isolated installs được áp dụng mặc định, mỗi workspace chỉ có thể truy cập các dependency của riêng mình
- Tính năng Catalog cho phép quản lý tập trung phiên bản dependency trong monorepo
- Bổ sung Security Scanner API và minimumReleaseAge để tăng cường phòng vệ trước các cuộc tấn công chuỗi cung ứng
- Hoàn thiện các công cụ quản lý ở mức npm·pnpm như
bun why,bun update --interactive,bun info,bun audit
Cải thiện kiểm thử và gỡ lỗi
bun testbổ sung tích hợp VS Code Test Explorer, kiểm thử song song (test.concurrent), thực thi ngẫu nhiên, và type test (expectTypeOf)- Hỗ trợ chuỗi
.failing,.serial,.eachvà tự động giữ nguyên thụt lề của snapshot - Chặn
test.onlytrong môi trường CI và tăng cường tính nhất quán của thứ tự kiểm thử
Củng cố Web API và tiêu chuẩn runtime
- Tích hợp sẵn phân tích/tuần tự hóa YAML, có thể import trực tiếp tệp
.yaml - API
request.cookieshỗ trợ quản lý cookie tự động - Hỗ trợ helper stream như ReadableStream .text()/.json(), nén Zstandard, và tải luồng WebAssembly
- Triển khai DisposableStack/AsyncDisposableStack để đơn giản hóa việc giải phóng tài nguyên
Bảo mật và tính năng hệ thống
Bun.secretscho phép tận dụng kho lưu trữ bảo mật của hệ điều hành (như Keychain)Bun.CSRFcung cấp API tạo và xác minh token CSRF- Mô-đun crypto cải thiện hiệu năng gấp 400 lần, tăng cường Diffie-Hellman, HKDF, và phép toán Prime
Nâng cao khả năng tương thích Node.js
- Vượt qua thêm hơn 800 bài kiểm thử Node.js, mở rộng mạnh cho
node:test,node:vm,worker_threads,fs,http2 - Hỗ trợ đầy đủ hầu hết các mô-đun lõi như require.extensions, process.binding(), điều khiển native addon, perf_hooks, tls, cluster
- Tỷ lệ tương thích N-API trên 98%, nhận diện runtime ở mức tương đương Node.js 24.3.0
Cải thiện trải nghiệm lập trình viên
- Thay đổi cấu hình TypeScript mặc định(
"module": "Preserve") - Tăng cường khả năng điều khiển runtime với biến môi trường
BUN_OPTIONS,--console-depth,--user-agent - Hỗ trợ preload script (
BUN_INSPECT_PRELOAD) và SQL Preconnect - Cải thiện
bunxđể vẫn có thể thực thi khi tên gói và tên binary không khớp
Hiệu năng và độ ổn định
- Giảm mức sử dụng CPU khi nhàn rỗi, tối ưu GC, giảm 10~30% bộ nhớ, tăng 60% tốc độ build
postMessagenhanh hơn tối đa 500 lần,bun install2.5 lần,Array.includes2.8 lần- Tối ưu hóa ở cấp độ WebKit·Zig giúp tăng tốc tổng thể runtime
- Hàng trăm bản sửa lỗi và khắc phục rò rỉ bộ nhớ giúp cải thiện đáng kể độ ổn định
Các thay đổi chính
- Cấu trúc kiểu của
Bun.serve()thay đổi và tên gọistatic→routes - Cách gọi SQL client thay đổi từ hàm thông thường → tagged template
- Tín hiệu GC trên Linux được thay bằng SIGPWR
- Hiển thị phiên bản Node.js được đổi từ 22.x → 24.3.0
Bun 1.3 là một bước ngoặt, vượt xa một runtime đơn thuần để định vị себя như “nền tảng tích hợp bao trùm Node·Deno·Vite·pnpm”
5 bình luận
Dù chỉ dùng thử một lúc từ khá sớm, nhưng tôi cảm thấy đây là một bước tiến vượt bậc, đến mức lại nghĩ hay là thử dùng thêm lần nữa nhỉ haha
Mong là cái này sẽ phát triển tốt.
Hóa ra đã có kế hoạch như vậy rồi!!
Tôi thích việc giao diện
sqlđã được thống nhất.Chắc hẳn phải có lý do Vite không gộp vào, nên mình cũng tò mò không biết trải nghiệm sử dụng Bun trong thực tế thế nào.