Node.js nổi tiếng với vai trò là môi trường chạy mã Javascript trên máy chủ. Nhắc đến Node không thể không nhắc đến V8 Engine cho khả năng xử lý JS mạnh mẽ, cộng với sức mạnh của C++ vốn là ngôn ngữ tạo nên nó. Node.js được cung cấp miễn phí, dễ dàng cài đặt và triển khai. Cộng đồng dùng Node rất đông cũng góp phần tạo nên sự nổi tiếng và tin tưởng.
Tuy nhiên gần đây một cái tên khác nổi lên như một hiện tượng "đe doạ" đến Node.js chính là Bun.sh. Vậy thì Bun.sh là gì và tại sao lại khiến Node.js phải dè chừng thì mời các bạn hãy đọc tiếp bài viết dưới đây.
Trước tiên phải nói rằng Bun.sh cũng chính là môi trường chạy mã Javascript tương tự như Node.js. Mục tiêu của Bun là chạy được hầu hết mã JavaScript "bên ngoài trình duyệt", mang lại những cải tiến về hiệu suất và độ phức tạp cho cơ sở hạ tầng tương lai, cũng như năng suất của các nhà phát triển thông qua một công cụ tốt hơn, đơn giản hơn.
Bun.sh không sử dụng V8 làm Javascript Engine như Node mà nó dùng JavascriptCore vốn là Engine của trình duyệt Safari. Ngoài ra Bun được viết bằng Ziglang mà họ giới thiệu là một ngôn ngữ bậc thấp (low-level) với quản lý bộ nhớ thủ công. Điều này giúp cho chi phí sử dụng tài nguyên của Bun thấp và hiệu năng cũng tăng thêm đáng kể.
Bun.sh triển khai lại hầu hết các thứ như trình biên dịch JSX/TypeScript, npm client, bundler, SQLite client, HTTP client, WebSocket client... Và tất cả đều là cây nhà lá vườn do họ tự tay phát triển.
Ngoài ra Bun cũng triển khai thuật toán phân giải modules của Node bao gồm cả node_modules
nên bạn có thể cài đặt và sử dụng các gói có trên npm giống như Node. ESM và CommonJS đều được hỗ trợ tuy nhiên Bun sử dụng ESM làm mặc định.
Bun triển khai đến 90% các API của Node (N-API) nên hầu như các module hoặc native module viết cho Node đều sẽ hoạt động với nó.
Bun trở nên đáng gờm bởi tốc độ. Ngoài việc tận dụng được hầu hết các tính năng giống như của Node nên Bun giúp bạn gần như có thể chạy được hầu hết ứng dụng viết bằng Node, nhưng Bun còn cho tốc độ tốt hơn cả.
Theo lời nhà phát triển Bun, sử dụng lệnh bun run
thay cho npm run
sẽ tiết kiệm được 160ms cho mỗi lần chạy. bun install
cũng nhanh hơn 20x lần so với yarm
là do Bun sử dụng "the fastest system calls" mà họ tự triển khai.
Ngoài ra là một vài hình ảnh Benchmarks so sánh tốc độ HTTP request Bun với hai môi trường chạy mã JS thông dụng là Node và Deno thì nó cũng cho con số ấn tượng.
Điều hạn chế của Bun đó là một công cụ mới đang còn trong giai đoạn phát triển, chưa có bản phát hành ổn định nên việc sử dụng Bun trong môi trường Production là hoàn toàn có thể xảy ra rủi ro. Tuy nhiên với những lợi ích mà Bun mang lại thì nó rất đáng giá để trải nghiệm. Hãy thử dùng Bun biết đâu bạn sẽ lưu được thêm một công cụ đáng giá cho mình thì sao?
Tuy là một công cụ mới tuy nhiên Bun.sh đã và đang gây sự chú ý trong cộng đồng phát triển Node.js. Hy vọng rằng vào một ngày không xa Bun sẽ phát hành phiên bản ổn định, đồng thời giữ vững tốc độ này thậm chí là hơn nữa để cộng đồng ngày càng lớn mạnh hơn.
Tôi & khao khát "chơi chữ"
Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!
Đăng ký nhận thông báo bài viết mới
Xin chào, tôi tên là Hoài - một anh Dev kể chuyện bằng cách viết ✍️ và làm sản phẩm 🚀. Với nhiều năm kinh nghiệm lập trình, tôi đã đóng góp một phần công sức cho nhiều sản phẩm mang lại giá trị cho người dùng tại nơi đang làm việc, cũng như cho chính bản thân. Sở thích của tôi là đọc, viết, nghiên cứu... Tôi tạo ra trang Blog này với sứ mệnh mang đến những bài viết chất lượng cho độc giả của 2coffee.dev.Hãy theo dõi tôi qua các kênh LinkedIn, Facebook, Instagram, Telegram.
Bình luận (0)