Giới thiệu tsrs: Dự án chuyển đổi trình biên dịch TypeScript sang Rust
Cloudflare hợp tác cùng VoidZero phát triển tsrs, một phiên bản TypeScript được viết lại bằng Rust nhằm tối ưu hóa hiệu suất và khả năng vận hành trên...
- Giọng nữ Bắc
Cloudflare vừa công bố hợp tác cùng VoidZero và Max Schwenkof (Owner.com) để phát triển tsrs, một dự án chuyển đổi (port) trình biên dịch TypeScript sang ngôn ngữ Rust. Dự án này được thực hiện dưới sự phối hợp chặt chẽ với đội ngũ phát triển TypeScript gốc và được ươm mầm như một phần của hệ sinh thái trình biên dịch JavaScript Oxc.
Table Of Content
Mục tiêu và cam kết
Mục tiêu cốt lõi của tsrs là giúp các lập trình viên tối ưu hóa thời gian chờ đợi khi kiểm tra mã nguồn. Bằng cách làm cho TypeScript nhanh hơn và tiết kiệm bộ nhớ hơn, dự án này mở ra khả năng triển khai các môi trường phát triển hoàn chỉnh ngay trên trình duyệt.
Cloudflare khẳng định rõ ràng rằng họ không thực hiện fork TypeScript. Đội ngũ TypeScript vẫn giữ quyền kiểm soát hoàn toàn đối với thiết kế và định hướng của ngôn ngữ. Dự án tsrs cam kết tuân thủ nghiêm ngặt các quyết định kỹ thuật từ phía TypeScript để đảm bảo tính tương thích tuyệt đối.
Hiệu suất vượt trội
Các thử nghiệm ban đầu cho thấy tsrs đạt hiệu suất ấn tượng: nhanh hơn tới 8 lần và tiêu thụ ít hơn khoảng 70% bộ nhớ so với TypeScript 7.0 khi chạy cùng số lượng worker kiểm tra kiểu (type check). Một số cải tiến hiệu suất từ tsrs thậm chí đã được đóng góp ngược lại vào phiên bản TypeScript chính thức.
Tại sao lại là Rust?
Mặc dù phiên bản TypeScript viết bằng Go đã cải thiện đáng kể tốc độ, nhưng Rust mang lại lợi thế độc nhất: khả năng vận hành trên WebAssembly (Wasm). Khi biên dịch Go sang Wasm, hệ thống phải bao gồm cả trình thu gom rác (garbage collector) của Go, trong khi mô hình quản lý bộ nhớ của Rust cho phép tương tác trực tiếp và hiệu quả hơn giữa guest và host trong Wasm.
Điều này cực kỳ quan trọng đối với Cloudflare Workers, cho phép chạy toàn bộ chuỗi công cụ phát triển (development toolchain) trong môi trường sandboxed an toàn, dù là trên trình duyệt, thiết bị nhúng hay ứng dụng IoT.
Duy trì và phát triển
Dự án sẽ áp dụng quy trình tự động hóa tương tự như cách họ duy trì Vinext (phiên bản Next.js tương thích). Các tác nhân AI sẽ hỗ trợ theo dõi các thay đổi từ upstream, chạy bộ kiểm thử (test suite) hàng đêm và đề xuất các bản sửa lỗi để đảm bảo tsrs không bị phân tách khỏi TypeScript gốc. Bất kỳ cải tiến hiệu suất nào tìm thấy trong quá trình phát triển cũng sẽ được ưu tiên đóng góp ngược lại cho cộng đồng.
Hiện tại, lập trình viên có thể trải nghiệm phiên bản thử nghiệm của tsrs thông qua gói npm. Cloudflare kỳ vọng dự án này sẽ là mảnh ghép quan trọng tiếp theo trong hệ sinh thái công cụ Rust mà họ đang hỗ trợ, bao gồm Vite, Rolldown, Oxlint và Oxfmt.
Nguồn tham khảo: Cloudflare Blog


No Comment! Be the first one.