Meta chuyển React Compiler sang Rust: Hiệu năng tăng gấp 3 và vai trò của AI

Công nghệ10 tháng 6, 2026·4 phút đọc

Meta đang thử nghiệm việc chuyển đổi React Compiler sang ngôn ngữ lập trình Rust. Phiên bản thử nghiệm này cho thấy hiệu năng vượt trội hơn bản TypeScript gốc, với phần lớn mã nguồn được viết bởi AI dưới sự giám sát chặt chẽ của đội ngũ kỹ sư.

Meta chuyển React Compiler sang Rust: Hiệu năng tăng gấp 3 và vai trò của AI

Meta chuyển React Compiler sang Rust: Hiệu năng tăng gấp 3 và vai trò của AI

Meta đang thử nghiệm việc chuyển đổi React Compiler sang ngôn ngữ lập trình Rust. Phiên bản thử nghiệm này cho thấy hiệu năng vượt trội hơn bản TypeScript gốc, với phần lớn mã nguồn được viết bởi AI dưới sự giám sát chặt chẽ của đội ngũ kỹ sư.

Dự án thử nghiệm đầy tham vọng

Joseph Savona, kỹ sư tại Meta, đã công bố một dự án mang tính thử nghiệm (work-in-progress) nhằm chuyển đổi React Compiler từ TypeScript sang Rust. Động thái này được thực hiện sớm để nhận được phản hồi từ các đối tác ngay cả khi Meta chưa hoàn tất việc kiểm thử nội bộ.

Hiện tại, dự án chưa có bản build chính thức nào phát hành, nhưng tất cả các bài kiểm thử (fixtures) cơ bản đều đã vượt qua. Meta xác nhận rằng không có khoảng trống nào được biết đến trong tính năng, mặc dù vẫn có thể tồn tại một số lỗi tiềm ẩn.

Hiệu năng ấn tượng và sự hỗ trợ của AI

Một trong những điểm nổi bật nhất của phiên bản Rust là hiệu năng. Theo các số liệu sơ bộ, phiên bản Rust hoạt động nhanh hơn 3 lần khi chạy dưới dạng plugin Babel. Logic chuyển đổi thực tế thậm chí nhanh hơn gấp 10 lần, dù chi phí tuần tự hóa (serialization) vẫn còn khá cao.

Điều thú vị là quy trình phát triển phiên bản này:

"Kiến trúc được hướng dẫn mạnh mẽ bởi con người nhưng phần lớn mã nguồn được viết bởi AI."

Joseph Savona cho biết ông đã tham gia sâu vào việc thiết lập kiến trúc, chiến lược kiểm thử và xác minh, cũng như tiếp cận di chuyển tăng dần (incremental migration). Ông dành nhiều thời gian để tinh chỉnh mã nguồn nhằm đảm bảo chất lượng ở mức chấp nhận được.

Kiến trúc kỹ thuật và Tích hợp

Về mặt kỹ thuật, phiên bản Rust sử dụng kiến trúc tương tự như phiên bản TypeScript. Trình biên dịch chuyển đổi từ AST (Abstract Syntax Tree) sang HIR (High-level Intermediate Representation) - một biểu diễn trung gian cấp cao sử dụng đồ thị luồng điều khiển (CFG) và gán tĩnh đơn (SSA).

Để phù hợp với hệ thống mượn (borrowing system) của Rust, nhóm phát triển đã sử dụng các cấu trúc dạng arena và các chỉ mục (indices) thay vì tham chiếu trực tiếp.

Về API công khai, dự án sử dụng "Rust Babel AST" làm định dạng chuẩn. Điều này cho phép tích hợp dễ dàng với các công cụ khác thông qua các chuyển đổi:

  • Babel: Plugin thay thế.
  • OXC và SWC: Các ví dụ tích hợp mẫu (crates react_compiler_oxcreact_compiler_swc).

Hiện tại, các tích hợp này vẫn cần cung cấp thông tin phạm vi (scope information), nhưng trong tương lai, React Compiler có thể sẽ tự tính toán các ràng buộc và tham chiếu trực tiếp từ AST.

Tính chính xác và Kế hoạch tương lai

Về tính chính xác, tất cả 1725 bài kiểm thử đều vượt qua khi so sánh đầu ra mã và lỗi giữa phiên bản Rust tạm thời và phiên bản chính. Trạng thái trung gian của trình biên dịch sau mỗi lượt xử lý (pass) cũng gần như giống hệt nhau giữa hai phiên bản.

Meta cũng có kế hoạch cải thiện thêm trong tương lai:

  • Thay đổi cách trả về từ thay thế toàn bộ chương trình sang trả về một loạt các bản vá (patches) để áp dụng.
  • Tối ưu hóa biểu diễn chuỗi bằng smol_str.
  • Triển khai phân giải phạm vi (scope resolution) riêng để loại bỏ sự phụ thuộc vào dữ liệu phạm vi từ bên ngoài.

Mời cộng đồng hợp tác

Meta rất hào hứng khi hợp tác với các đội ngũ để tích hợp phiên bản Rust của React Compiler vào các công cụ khác như OXC và SWC. Nếu bạn quan tâm, Meta khuyến khích xem xét các crate react_compiler_swcreact_compiler_oxc để hiểu rõ hơn về hình thức API mà họ đang hướng tới.

Đây là một bước tiến quan trọng trong hệ sinh thái React, hứa hẹn mang lại tốc độ biên dịch nhanh hơn và hiệu suất tốt hơn cho các nhà phát triển Frontend trong tương lai.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗