Jarred Sumner, người sáng lập và nhà phát triển chính của nền tảng JavaScript phía máy chủ Bun, đã tuyên bố thử nghiệm viết lại dự án từ Zig và Rust bằng trợ lý AI Claude Code là thành công và quyết định chuyển Bun sang Rust. Phiên bản Rust đã được chấp nhận vào kho lưu trữ chính của dự án, và mã nguồn Zig sẽ bị xóa. Tác giả của Bun cũng thông báo tuyển dụng nhân viên hỗ trợ với hơn năm năm kinh nghiệm phát triển C/C++ và Rust.
Hiện tại, một phiên bản chuyển đổi trực tiếp của ngôn ngữ Zig đã được triển khai bằng Rust. Nó bao gồm nhiều khối mã không an toàn và sử dụng cùng kiến trúc, cấu trúc dữ liệu và các thư viện bên ngoài hiện có. Phiên bản Rust đã vượt qua thành công bộ kiểm thử hiện có trên tất cả các nền tảng. Một số lỗi rò rỉ bộ nhớ và lỗi kiểm thử cũng đã được khắc phục.
Sau khi biên dịch phiên bản Rust, tệp thực thi nhỏ hơn 3-8 MB so với phiên bản Zig. Trong các bài kiểm tra hiệu năng, phiên bản Rust nhanh hơn hoặc tương đương. Tuy nhiên, theo Jarred, ưu điểm quan trọng nhất của phiên bản Rust là khả năng phát hiện và ngăn chặn lỗi bộ nhớ, điều mà các nhà phát triển Bun đã phải thực hiện tốn rất nhiều thời gian trong những năm gần đây.
Những lý do trước đây được đưa ra để chuyển sang viết lại bằng Rust là mong muốn khắc phục các vấn đề trong Bun do rò rỉ bộ nhớ gây ra, những bất đồng với các tác giả của Zig về việc sử dụng trí tuệ nhân tạo để viết mã, và chính sách của Zig về việc chấp nhận những thay đổi ngôn ngữ làm mất tính tương thích, điều này là không thể chấp nhận được đối với các dự án lớn.
Nền tảng JavaScript Bun đang được phát triển như một giải pháp thay thế hiệu năng cao cho Node.js và Deno. Dự án được phát triển với mục tiêu tương thích với các ứng dụng máy chủ Node.js và hỗ trợ hầu hết API của Node.js. Nền tảng này bao gồm một bộ công cụ để tạo và chạy các ứng dụng JavaScript và TypeScript, cũng như một môi trường chạy để thực thi các ứng dụng JavaScript mà không cần trình duyệt, một trình quản lý gói (tương thích với NPM), các công cụ kiểm thử, một trình xây dựng gói độc lập và một lớp để nhúng các trình xử lý được viết bằng C. Về hiệu năng, Bun vượt trội hơn đáng kể so với Deno và Node.js (trong các thử nghiệm dựa trên framework React, Bun vượt trội hơn Deno gấp 2 lần và Node.js gấp gần 5 lần). Việc thực thi JavaScript được hỗ trợ bởi công cụ JavaScriptCore và các thành phần WebKit với các bản vá bổ sung.
Nguồn: opennet.ru
