
Nội dung
Cloudflare đã tiếp quản tsrs, dự án chuyển trình biên dịch TypeScript sang Rust, nhưng không biến nó thành một nhánh ngôn ngữ riêng. Theo Cloudflare, tsrs nhanh hơn tới 8 lần. Công ty cũng tuyên bố dự án giảm 70% mức sử dụng bộ nhớ so với TypeScript 7.0. Cloudflare sẽ phát triển tsrs và phối hợp với đội TypeScript để duy trì khả năng tương thích giữa các bản triển khai, trong khi Microsoft tiếp tục quyết định thiết kế và định hướng của ngôn ngữ.
Theo bài gốc của The New Stack, Cloudflare muốn dùng tsrs để hỗ trợ các tác tử viết mã. Mục tiêu là giúp chúng kiểm tra công việc mà không tiêu tốn quá nhiều tài nguyên tính toán. Công ty cũng dự kiến chia sẻ các tối ưu hóa giữa hai bản triển khai thay vì phát triển một phiên bản TypeScript độc lập.
Christoph Nakazawa, giám đốc kỹ thuật của Cloudflare, cho biết các cải tiến từ quá trình phát triển tsrs đã giúp TypeScript 7.1 nhanh hơn khoảng 2,5 lần. Trong bài công bố của Cloudflare, Nakazawa viết cùng Boshen Chen và Dimitri Mitropoulos. Họ khẳng định đội TypeScript của Microsoft nên tiếp tục toàn quyền kiểm soát thiết kế và định hướng của ngôn ngữ.
Vì sao cần thêm một bản triển khai TypeScript bằng Rust?
Bản triển khai bằng Rust nhằm giảm thời gian và bộ nhớ cần cho hoạt động kiểm tra kiểu, đặc biệt khi nhiều tác tử cùng viết và xác thực mã. Kết quả của tsrs cũng cho thấy các thay đổi về kiến trúc và thuật toán có thể cải thiện hiệu năng của cả bản Rust lẫn trình biên dịch TypeScript do Microsoft phát triển.
Microsoft phát hành TypeScript vào năm 2012 để bổ sung hệ thống kiểu cho JavaScript, giúp lập trình viên phát hiện lỗi trước khi ứng dụng chạy. Tuy nhiên, việc kiểm tra kiểu có thể dùng nhiều tài nguyên trong các dự án lớn, nhất là khi nhiều tác tử làm việc đồng thời.
Microsoft đã xử lý một phần vấn đề hiệu năng vào tháng 7 với TypeScript 7.0. Hãng thay trình biên dịch viết bằng JavaScript bằng một phiên bản viết bằng Go và đạt mức tăng tốc khoảng 10 lần, theo thông tin Microsoft được The New Stack dẫn lại.
Microsoft từng cân nhắc Rust cho lần viết lại đó nhưng nhận thấy việc tái tạo kiến trúc TypeScript hiện có bằng Rust sẽ gây khó khăn về quản lý bộ nhớ và khả năng tương thích. Kết quả của tsrs cho thấy ngôn ngữ triển khai chỉ là một phần của bài toán hiệu năng.
Daniel Rosenwasser, giám đốc sản phẩm chính phụ trách TypeScript tại Microsoft, cho biết nhiều cải thiện tốc độ không chỉ đến từ việc lựa chọn ngôn ngữ. Một số tối ưu hóa được phát hiện trong quá trình phát triển tsrs đã giúp TypeScript 7.1 nhanh hơn và dùng ít bộ nhớ hơn.

Rust phù hợp với trình duyệt và vùng cách ly như thế nào?
Rust có thể kết hợp với WebAssembly mà không phải mang theo bộ thu gom rác như Go. Điều này phù hợp với mục tiêu chạy công cụ phát triển trong trình duyệt và vùng cách ly. Khả năng kiểm soát bộ nhớ trực tiếp giúp giảm chi phí trong các môi trường có giới hạn tài nguyên.
Với Cloudflare, đặc điểm này có thể giúp đưa một môi trường phát triển hoàn chỉnh vào trình duyệt và các vùng cách ly Workers. Tại đó, tác tử có thể viết, kiểm tra và xây dựng ứng dụng mà không cần một máy phát triển thông thường có cấu hình lớn. Đây cũng là bài toán hạ tầng đáng chú ý khi AI tác tử đang trở thành một lớp hạ tầng mới trong quy trình phát triển phần mềm.
Dự án còn nằm trong chiến lược mở rộng hệ sinh thái JavaScript của Cloudflare. Công ty đã mua VoidZero vào tháng 6 và gần đây phát hành Void, một nền tảng mã nguồn mở để triển khai và quản lý ứng dụng do AI xây dựng.
Hai đội Cloudflare và VoidZero hiện phát triển tsrs trong dự án Oxc, bộ công cụ JavaScript viết bằng Rust của VoidZero. Cloudflare có kế hoạch tích hợp tsrs vào các công cụ dành cho lập trình viên.
tsrs bắt đầu từ một hệ thống có 37.000 tệp
tsrs bắt đầu tại Owner.com với một hệ thống TypeScript gồm 37.000 tệp. Trình biên dịch Go dùng 19 GiB bộ nhớ và mất 80 giây cho một lần kiểm tra. Max Schwenk giao việc tái tạo trình biên dịch bằng Rust cho Claude Opus 5.5 và hơn 20 tác tử phụ. Ông định hướng thử nghiệm và đánh giá kết quả.
Owner.com là công ty cung cấp phần mềm cho nhà hàng. Schwenk, người phụ trách trải nghiệm phát triển AI tại công ty, phải xử lý hệ thống phía máy chủ TypeScript nói trên trong khi nhiều tác tử cùng tạo và kiểm tra mã.
The New Stack dẫn lại số liệu từ bài viết của Schwenk: 19 GiB bộ nhớ và 80 giây cho một lần kiểm tra. Mức tiêu thụ đó giới hạn số tác tử có thể làm việc đồng thời. Mỗi tác tử khó tự xác minh thay đổi của mình. Vì vậy, Owner.com phải thử môi trường phát triển trên đám mây và chấp nhận các phương án thỏa hiệp khác.
Schwenk cho rằng một tác tử muốn đạt năng suất cao phải xác thực được công việc trong vòng phản hồi ngắn. Điều này giải thích vì sao cách tác tử viết mã vận hành phụ thuộc nhiều vào tốc độ kiểm tra, không chỉ vào khả năng sinh mã.
Claude Opus 5.5 xây dựng trình kiểm tra kiểu
Schwenk gặp giới hạn khi cố giảm mức dùng bộ nhớ của trình biên dịch Go. Sau đó, ông giao cho Claude Opus 5.5 của Anthropic nhiệm vụ tái tạo trình biên dịch bằng Rust. Ông mô tả vai trò của mình bằng một tuyên bố trực tiếp:
“Tôi không viết một dòng mã nào. Không phải là gần như không viết. Mà là không viết.”
Theo Schwenk, hơn 20 tác tử phụ được triển khai song song và hệ thống kiểm tra kiểu đã hoạt động vào sáng hôm sau. Sau các vòng tối ưu hóa tiếp theo, thời gian kiểm tra kiểu của Owner.com giảm từ 80 giây xuống khoảng 7 giây trong quy trình tích hợp liên tục.
Schwenk cũng báo cáo rằng trên hơn 12 dự án công khai, tsrs chạy nhanh hơn từ 2,5 đến 5 lần so với bản dựng Go hằng đêm mới hơn của Microsoft và chỉ dùng khoảng một phần ba lượng bộ nhớ. Đây là số liệu do Schwenk công bố, không phải kết quả đo độc lập của Microsoft hay Cloudflare.

Các tác tử tham gia những dự án chuyển đổi sang Rust nào?
tsrs nằm trong một nhóm dự án mà GitHub, Anthropic, Meta và OpenAI đã dùng tác tử AI để hỗ trợ chuyển phần mềm sang Rust. Các trường hợp này cho thấy tác tử có thể đảm nhận phần lớn khối lượng triển khai, nhưng mã tạo ra vẫn cần kiểm thử tương thích và kiểm tra an toàn.
Theo các bài viết được The New Stack tổng hợp, GitHub đã dùng tác tử Copilot để viết lại môi trường chạy cho tác tử viết mã bằng Rust. Anthropic từng dùng tác tử Claude để hỗ trợ chuyển môi trường chạy JavaScript Bun từ Zig sang Rust.
Meta cũng sử dụng AI để hỗ trợ chuyển React Compiler sang Rust. Vào tháng 9, OpenAI cho biết hai kỹ sư đã dùng Codex và GPT-5.5 để xây dựng lại dịch vụ lưu trữ Habitat bằng Rust.
Những dự án này cho thấy tác tử có thể đảm nhận khối lượng triển khai lớn trong thời gian ngắn. Tuy nhiên, mã được tạo nhanh vẫn phải trải qua quy trình xác minh tương xứng. Vấn đề này liên quan trực tiếp đến việc AI đang thay đổi hoạt động rà soát mã.
Làm thế nào để xác minh bản chuyển TypeScript sang Rust?
tsrs phải phát hiện cùng những lỗi mà trình biên dịch TypeScript của Microsoft phát hiện, không chỉ hoàn thành tác vụ nhanh hơn. Dự án dùng bộ thử tương thích của TypeScript và cố ý đưa lỗi vào các dự án thực tế. Nhóm phát triển cũng chạy Miri để phát hiện vấn đề an toàn bộ nhớ trong Rust.
Các phép kiểm tra đã phát hiện một lỗi bộ nhớ chỉ xuất hiện trong bản dựng được tối ưu hóa. Kết quả này cho thấy một chương trình chạy được chưa đủ để xác nhận rằng bản chuyển đổi do tác tử tạo ra hoạt động đúng.
Schwenk tóm tắt tiêu chuẩn đánh giá bằng nhận định:
“Một trình biên dịch nhanh hơn nhưng tìm thấy ít lỗi hơn chỉ là một trình biên dịch hỏng được tiếp thị tốt.”
Duy trì khả năng tương thích lâu dài
Duy trì khả năng tương thích sẽ là công việc liên tục. Cloudflare dự định áp dụng phương pháp từng dùng cho Vinext, bản triển khai lại khung Next.js dựa trên Vite. Trong quy trình đó, các tác tử theo dõi thay đổi của Next.js và chạy kiểm thử tương thích. Chúng đề xuất bản sửa khi phát hiện khác biệt.
tsrs vẫn có một số sai lệch, trong đó có thứ tự hiển thị thông báo chẩn đoán. Cloudflare cho biết sẽ thận trọng để tránh tạo ra hành vi khác với TypeScript gốc.
Cloudflare gọi tsrs là một bản chuyển đổi thay vì một nhánh độc lập. Cách gọi này phản ánh mô hình quản trị của dự án. Microsoft tiếp tục quyết định thiết kế và định hướng của TypeScript. Cloudflare phát triển bản Rust và chia sẻ những tối ưu hóa có thể cải thiện cả hai bản triển khai.
Hãy tiếp tục theo dõi Sine để cập nhật cách các tác tử AI đang thay đổi công cụ và quy trình phát triển phần mềm.

