Bun JavaScript Runtime: Bộ công cụ JS tất cả trong một
Hãy chọn Bun nếu bạn muốn một binary nhanh thay cho node, npm, jest và bundler của bạn, và các phụ thuộc của bạn đã chạy được trên nó — bước nhảy tốc độ khi cài đặt và chạy test là có thật. Hãy khoan nếu ứng dụng của bạn dựa nhiều vào các thành phần nội bộ sâu của Node.js hoặc native module mà JavaScriptCore và lớp tương thích của Bun chưa phủ hết; hãy kiểm thử đúng khối lượng công việc thực tế trước khi chuyển một dịch vụ production.
Bốn công cụ phải ghép lại cho mỗi dự án JS
Một dự án JavaScript điển hình chắp vá nhiều công cụ riêng lẻ: Node.js để chạy code, npm hoặc yarn để cài gói, một bundler như Webpack hoặc esbuild, và Jest hoặc Vitest cho test. Mỗi cái có config, chi phí khởi động và những khác biệt phiên bản riêng. Điểm bán của Bun là gộp cả chồng đó vào một file thực thi, để bạn thôi phải dán bốn công cụ lại với nhau và thôi phải chờ cài đặt chậm cùng khởi động nguội.
Một binary cho runtime, package manager, bundler và test
Bun JavaScript runtime là một file thực thi duy nhất, `bun`, chạy trực tiếp JavaScript và TypeScript — gồm cả file .ts và .jsx mà không cần bước build riêng. Bên dưới runtime là ba công cụ nữa: một test runner (`bun test`), một trình chạy script, và một trình quản lý gói tương thích Node.js (`bun install`). README mô tả nó được viết bằng Rust và chạy trên JavaScriptCore, engine đứng sau Safari, thứ mà nó ghi công cho thời gian khởi động và mức dùng bộ nhớ thấp hơn Node.
bun install, bun test, Bun.build và SQLite/Postgres có sẵn
- ✓Một binary `bun` duy nhất chạy trực tiếp TypeScript và JSX, không cần bước transpile riêng
- ✓Trình quản lý gói tương thích Node.js (`bun install`) mà README quảng bá là nhanh hơn nhiều so với npm hoặc yarn
- ✓Test runner tích hợp (`bun test`) với mock, snapshot và đo độ phủ code
- ✓Một bundler (`Bun.build`) với loader, plugin và xuất file thực thi đơn
- ✓API gốc cho SQLite, PostgreSQL, Redis và S3, cùng một HTTP server (`Bun.serve`) và WebSocket
- ✓`bunx` để chạy một gói mà không cần cài toàn cục, giống npx
- ✓Bản build đa nền tảng cho Linux, macOS và Windows trên x64 và arm64
Cài qua script chính thức, npm hoặc Homebrew
Cài bằng script chính thức: `curl -fsSL https://bun.com/install | bash` trên macOS hoặc Linux, hoặc `powershell -c "irm bun.sh/install.ps1 | iex"` trên Windows. Nó cũng có trên npm (`npm install -g bun`), Homebrew (`brew tap oven-sh/bun` rồi `brew install bun`), và Docker (`docker pull oven/bun`). Trên Linux, khuyến nghị kernel 5.6+ (tối thiểu 5.1). Cập nhật tại chỗ bằng `bun upgrade`.
Chạy TypeScript và JSX mà không cần bước build
Chạy một file trực tiếp: `bun run index.tsx` xử lý TypeScript và JSX ngay từ đầu. Các lệnh thường ngày khác phản chiếu những công cụ mà Bun thay thế — `bun test` chạy test, `bun run start` chạy script `start` trong package.json, `bun install <pkg>` thêm một phụ thuộc, và `bunx cowsay 'Hello, world!'` chạy một gói mà không cài toàn cục. Tài liệu đầy đủ ở bun.com/docs.
Rút ngắn thời gian cài đặt CI và thay thế Jest
- •Chạy một ứng dụng TypeScript hoặc JSX trực tiếp mà không cần chuỗi công cụ build riêng
- •Thay npm hoặc yarn bằng `bun install` để cắt thời gian cài phụ thuộc trong CI
- •Dùng `bun test` như một runner kiểu Jest mà không phải thêm Jest và config của nó
- •Đóng gói một frontend hoặc build một file thực thi đơn bằng `Bun.build`
- •Viết một HTTP hoặc WebSocket server nhỏ trên API `Bun.serve` tích hợp sẵn
94k sao cho việc gộp toolchain JS làm một
Bun JavaScript runtime là một trong những dự án được theo dõi nhiều nhất trong hệ sinh thái JavaScript. Sức hút là sự hợp nhất cộng với tốc độ: README quảng bá các công cụ tích hợp của nó nhanh hơn đáng kể so với các lựa chọn hiện có mà vẫn dùng được trong các dự án Node.js sẵn có với ít thay đổi. Công việc gần đây đã vượt xa runtime — một bundler (`Bun.build`), các client SQLite, Postgres, Redis và S3 tích hợp sẵn, cùng một shell — biến nó từ một runtime nhanh thành một thư viện chuẩn rộng.
Tốc độ JavaScriptCore mà không cần bốn cấu hình riêng
- ✓Một binary thay cho runtime, trình quản lý gói, test runner và bundler, nên có ít công cụ phải cấu hình hơn nhiều
- ✓Tốc độ khởi động và cài đặt là điểm nhấn — README ghi công cho JavaScriptCore và một trình cài nhanh hơn
- ✓TypeScript và JSX chạy không cần bước build, rút ngắn vòng lặp sửa-chạy
- ✓Đi kèm một thư viện chuẩn thực sự: SQLite, Postgres, Redis, S3, một HTTP server và một shell đều tích hợp sẵn
- ✓Đa nền tảng, gồm cả Windows trên x64 và arm64
Khoảng trống tương thích Node và giấy phép chưa rõ
- △Tương thích Node.js chưa trọn vẹn — các ứng dụng dựa vào thành phần nội bộ sâu của Node hoặc một số native module có thể gặp lỗ hổng, nên hãy kiểm thử đúng khối lượng công việc thực tế trước khi chuyển
- △Nó chạy trên JavaScriptCore chứ không phải V8, nên hành vi và hiệu năng có thể khác Node và Chrome ở các trường hợp biên, và công cụ chuyên cho V8 sẽ không áp dụng được
- △Hỗ trợ Windows đến sau Linux và macOS và có ít trải nghiệm thực tế hơn; hãy xem nó như mục tiêu mới hơn
- △Metadata cung cấp ở đây không ghi giấy phép, nên hãy xác nhận điều khoản cấp phép trên repo trước khi phụ thuộc vào nó
- △Đi nhanh đồng nghĩa với một bề mặt API rộng và còn đang trưởng thành; một số API tích hợp là riêng của Bun và sẽ không chuyển ngược về Node được
Ai nên thử Bun trước khi migrate toàn bộ
Các đội bắt đầu một dịch vụ TypeScript mới, hoặc những đội bực bội vì cài đặt CI chậm và một chồng công cụ JavaScript bốn thứ, được lợi nhiều nhất từ Bun JavaScript runtime — nhất là khi các phụ thuộc của họ đã chạy được trên nó. Nếu bạn duy trì một ứng dụng production lớn gắn với các thành phần nội bộ cụ thể của Node.js, native addon hoặc hành vi V8, hãy giữ Node làm mặc định và thử Bun trên một dịch vụ không trọng yếu trước.
Node.js, Deno, esbuild và pnpm
Câu hỏi về hỗ trợ Windows và các tuyên bố về tốc độ
Bun là một JavaScript runtime nhanh, tất cả trong một, đồng thời hoạt động như một bundler, test runner và trình quản lý gói tương thích Node.js, đóng gói thành một file thực thi duy nhất. Nó chạy trực tiếp JavaScript và TypeScript và hướng tới việc thay thế trực tiếp Node.js.
Đó là mục tiêu. README gọi Bun là bản thay thế trực tiếp cho Node.js và nói các công cụ của nó hoạt động trong các dự án Node sẵn có với ít thay đổi. Trên thực tế, độ tương thích cao nhưng chưa hoàn toàn, nên hãy kiểm thử trước các ứng dụng dựa vào thành phần nội bộ sâu của Node hoặc native module.
README quy thời gian khởi động và mức dùng bộ nhớ thấp hơn cho engine JavaScriptCore và một trình cài nhanh hơn, và quảng bá các công cụ tích hợp nhanh hơn đáng kể so với npm, yarn và Jest. Mức lợi thực tế tùy khối lượng công việc, nên hãy tự đo trên trường hợp của bạn.
README mô tả Bun được viết bằng Rust và chạy trên JavaScriptCore, cùng engine mà Safari dùng. Các topic được liệt kê của repo cũng gồm rust và javascriptcore.
Có. README liệt kê hỗ trợ Windows trên x64 và arm64, bên cạnh Linux và macOS. Hỗ trợ Windows đến sau các nền tảng khác, nên nó có ít trải nghiệm thực tế hơn.
Repo liên quan
Vẫn đang phân vân về bun?
Một cú bấm sẽ gửi câu hỏi kèm trang này cho AI — xem AI nói gì về bun.
