Hỗ trợ Windows
- Có thể chạy Bun trên Windows 10 trở lên
- Vượt qua 98% bộ test của Bun trên macOS và Linux
- Bao gồm trình quản lý gói tương thích npm tích hợp, khi cài ứng dụng Vite React nhanh hơn
yarn 18 lần và nhanh hơn npm 30 lần
- Hỗ trợ thực thi script nhanh hơn trên Windows với định dạng tệp
.bunx
- Tối ưu hóa API Node.js bằng cách sử dụng các system call nhanh nhất trên Windows
- Ví dụ:
fs.readdir() nhanh hơn Node.js 58%
Bun là một JavaScript runtime
- Hỗ trợ JavaScript, TypeScript, JSX
- Các công cụ dòng lệnh như
tsc nhanh hơn tối đa 2 lần so với Bun 1.0
- Bun Shell giờ đã trở thành shell đa nền tảng có thể dùng cả trên Windows
- Bao gồm các utility cốt lõi như
ls, rm, cat
- Có thể chạy shell từ JavaScript và TypeScript bằng API
Bun.$
Bun.Glob
- Cung cấp API Glob tích hợp để khớp tệp và chuỗi
- Tương tự
fast-glob và micromatch nhưng khớp chuỗi nhanh hơn 3 lần
Bun.Semver
- API Semver mới để phân tích và sắp xếp chuỗi semver
- Tương tự gói
node-semver nhưng nhanh hơn 20 lần
Bun.stringWidth()
- API mới để đo độ rộng hiển thị của chuỗi trong terminal
- Hỗ trợ mã thoát ANSI, ký tự toàn chiều rộng, grapheme, emoji
server.url: có thể lấy URL của máy chủ HTTP được tạo bằng Bun.serve() thông qua thuộc tính server.url
server.requestIP(): có thể lấy địa chỉ IP của yêu cầu HTTP bằng phương thức server.requestIP()
subprocess.resourceUsage(): có thể truy cập mức sử dụng CPU và bộ nhớ của tiến trình con được tạo bằng Bun.spawn() qua phương thức resourceUsage()
- Cải thiện khả năng tương thích Node.js
- Cải tiến nhiều API như API client
node:http2, khả năng tương thích Date.parse(), hỗ trợ fs.readdir() đệ quy, v.v.
- Có thể IPC giữa Bun và Node.js
- Cũng hỗ trợ một số API Node.js không được tài liệu hóa
- Web API: hỗ trợ các API tiêu chuẩn Web như
WebSocket, performance.mark(), fetch() dùng nén Brotli, URL.canParse()
Bun là trình quản lý gói tương thích npm
- Có thể cài đặt gói npm nhanh hơn tối đa 29 lần bằng
bun install
- Cải thiện các tính năng như lifecycle script,
trustedDependencies, bun pm trust
Bun là trình bundler JavaScript
- Hỗ trợ bundle mã có thể chạy trên Node.js bằng
bun build --target=node
- Có thể biên dịch tệp TypeScript và JavaScript thành file thực thi đơn bằng cờ
--compile
Bun là test runner
- Cung cấp module test tích hợp hỗ trợ cùng API như Jest
- Thêm matcher
expect() mới và hỗ trợ module mocking
Hỗ trợ SQLite tích hợp
- Hỗ trợ SQLite với API lấy cảm hứng từ
better-sqlite3
- Cải thiện truy vấn nhiều câu lệnh, thông báo lỗi chi tiết, import cơ sở dữ liệu và hỗ trợ tích hợp
Ý kiến của GN⁺
- Bun là bộ công cụ JavaScript cải thiện mạnh về hiệu năng trong khi vẫn giữ khả năng tương thích với Node.js, và nhờ hỗ trợ Windows nên giờ có thể tiếp cận cộng đồng nhà phát triển rộng hơn.
- Test runner tích hợp và hỗ trợ SQLite giúp nhà phát triển làm việc hiệu quả mà không cần thêm công cụ phụ trợ.
- Hiệu năng nhanh và trải nghiệm lập trình được cải thiện của Bun có thể đặc biệt nổi bật trong các dự án quy mô lớn hoặc ứng dụng nhạy cảm với hiệu năng.
- Dù Bun cung cấp nhiều tính năng và cải tiến, để đạt được khả năng tương thích hoàn toàn với hệ sinh thái gói phong phú của Node.js thì vẫn cần phát triển liên tục và phản hồi từ cộng đồng.
- Cần thêm phân tích về cách các tính năng mới của Bun có thể cạnh tranh hoặc phối hợp với các công cụ hiện có dựa trên Node.js.
1 bình luận
Ý kiến Hacker News
Danh sách thay đổi ấn tượng của Bun
Tính năng macro của Bun
Nghi vấn về lý do dùng Bun và Deno
Người hâm mộ nhiệt thành của Bun
Đánh giá về bản phát hành mới của Bun
.jscủa dự án cùng runtime để tạo ra file thực thi không có phụ thuộc. Điều này hữu ích khi muốn phân phối một binary duy nhất cho người dùng, nhưng hiện tại kích thước file vẫn còn khá lớn (trên 90MB với dự án nhỏ trên GNU/Linux).Yêu cầu gửi tới nhóm Bun
Sự tham gia của nhà phát triển Bun
Câu hỏi về độ ổn định của Bun
Mô hình doanh thu và vốn VC của Bun