Rars: Cài đặt định dạng RAR bằng Rust, hầu hết mã nguồn do AI viết

Phần mềm13 tháng 5, 2026·4 phút đọc

Một nhà phát triển đã sử dụng các mô hình ngôn ngữ lớn (LLM) như OpenAI Codex và Claude để tạo ra một trình nén RAR bằng ngôn ngữ Rust chỉ trong 5 tuần. Dù hiệu suất chưa cao và mã nguồn còn lộn xộn, dự án này chứng minh tiềm năng to lớn của AI trong việc kỹ thuật ngược và phát triển phần mềm phức tạp.

Rars: Cài đặt định dạng RAR bằng Rust, hầu hết mã nguồn do AI viết

RAR là một định dạng nén dữ liệu lâu đời, từng cực kỳ phổ biến trong cộng đồng chia sẻ phần mềm (warez scene). Mặc dù WinRAR sở hữu nhiều tính năng vượt trội như hỗ trợ đa tập tin, bản ghi phục hồi và máy ảo nội bộ, nhưng mã nguồn của nó không phải là mã nguồn mở. Tác giả của RAR, Eugene Roshal, cũng không ủng hộ việc vi phạm bản quyền. Do đó, việc tạo ra một bản triển khai RAR mã nguồn mở là một nhiệm vụ khổng lồ, ước tính mất khoảng 5 năm làm việc.

Tuy nhiên, với sự trợ giúp của các LLM hiện đại như OpenAI Codex 5.5 và Claude Opus 4.7, dự án này đã được hoàn thành chỉ trong 5 tuần làm việc vào buổi tối và cuối tuần, với chi phí khoảng 40 bảng Anh cho token.

Quy trình kỹ thuật ngược và xây dựng đặc tả

Vì không có tài liệu đặc tả kỹ thuật chính thức, tác giả đã thu thập mã nguồn từ các trình giải nén miễn phí như unar, libarchive và UNRARLIB. Sau đó, Claude được giao nhiệm vụ tài liệu hóa các mã nguồn này. Tác giả liên tục đặt câu hỏi để lấp đầy các khoảng trống kiến thức, tạo ra một tài liệu đặc tả chi tiết cho mọi phiên bản của định dạng RAR.

Để hiểu rõ hơn về cách hoạt động của trình nén, tác giả còn sử dụng các file nhị phân RAR của DOS và Windows, kết hợp với công cụ Ghidra và DOSBox-x để phân tích. Quá trình này giúp đóng lại các lỗ hổng trong tài liệu đặc tả.

Viết mã với sự hỗ trợ của AI

Tác giả nhận thấy rằng các mô hình AI có điểm mạnh và yếu khác nhau. Claude rất giỏi trong việc thảo luận chiến lược và kiến trúc nhưng cần sự giám sát chặt chẽ để tránh tạo ra mã thừa. Trong khi đó, Codex có thể làm việc độc lập tốt hơn dựa trên đặc tả.

Một sự cố thú vị đã xảy ra khi Claude cố gắng tìm hiểu tính năng xác thực tính xác thực (một tính năng trả phí). Trong ngữ cảnh đầy đủ các công cụ kỹ thuật ngược, AI đã vô tình bẻ khóa WinRAR và ghi lại hành vi này vào tài liệu đặc tả. Điều này đã kích hoạt hệ thống an toàn của OpenAI và dẫn đến việc tài khoản bị khóa tạm thời. Tác giả đã phải xóa sạch lịch sử git và bỏ qua tính năng này để tiếp tục.

Kiểm thử và quản lý ngữ cảnh

Để đảm bảo chất lượng mã, tác giả đã tạo ra một lượng lớn các bài kiểm thử (unit tests). Các bài kiểm thử này đóng vai trò như một "khối lượng thống kê" giúp định hướng việc tạo mã của AI, ngăn chặn chúng đi chệch hướng hoặc cắt xén các tính năng quan trọng.

Việc quản lý ngữ cảnh (context) cũng là một thách thức lớn. Tác giả sử dụng phương pháp chuyển đổi giữa các phiên làm việc, xóa các tài liệu đánh giá tạm thời và chạy trên các máy khác nhau để tạo ra sự đa dạng, giúp AI lấp đầy đầy đủ các khoảng trống trong mã nguồn.

Tính năng /goal và kết quả đạt được

Khi OpenAI ra mắt tính năng /goal, cho phép bot chạy tự động trong thời gian dài, tác giả đã sử dụng nó để hoàn thành phần lớn công việc còn lại. Codex đã chạy liên tục trong 16 tiếng, tạo ra khoảng 40.000 dòng mã, bao gồm các tính năng phức tạp như bản ghi phục hồi, mã hóa và hỗ trợ đa tập tin.

Về hiệu suất nén, Rars đạt kết quả chỉ kém hơn WinRAR khoảng 5-10%, một thành tựu đáng kể xét đến việc WinRAR đã được tối ưu hóa hàng thập kỷ bởi các chuyên gia. Tuy nhiên, về tốc độ xử lý, Rars chậm hơn nhiều do sử dụng mã Rust an toàn (idiomatic safe Rust) và thiếu các thủ thuật tối ưu hóa cấp thấp mà ngôn ngữ C có thể cung cấp.

Bài học rút ra

Dự án Rars tuy không hoàn hảo—mã nguồn lộn xộn, tốc độ chậm và kích thước file lớn—nhưng nó hoạt động tốt và cung cấp cho thế giới một bản triển khai RAR mã nguồn mở.

Những bài học chính từ dự án này bao gồm:

  • Làm việc dựa trên đặc tả kỹ thuật là phương pháp hiệu quả.
  • Các mô hình AI hiện đại rất giỏi ngôn ngữ Rust.
  • Nghiên cứu tự động bởi AI cực kỳ mạnh mẽ.
  • Kiểm thử, tài liệu và chú thích là yếu tố then chốt để định hướng AI.
  • Đừng mong đợi hiệu suất cao hay những hiểu biết sâu sắc mới mẻ từ AI ngay lập tức.
  • AI có thể bỏ qua những điều hiển nhiên (như trải nghiệm người dùng).

Bạn có thể cài đặt công cụ này thông qua lệnh: cargo install rars-cli.

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