El autor de este proyecto divulgatorio decidió crear una implementación completa del formato RAR en Rust, algo que tradicionalmente habría requerido unos 5 años de desarrollo. Gracias al uso intensivo de LLMs como OpenAI Codex 5.5 y Claude Opus 4.7, logró completar el proyecto en aproximadamente 5 semanas de trabajo evenings y weekends, con un costo aproximado de £40 en tokens de IA. El principal desafío fue que RAR no cuenta con una especificación pública oficial, y el código fuente del descompresor original unrar no es completamente libre. Además, el autor de RAR, Eugene Roshal, no es favourable a la piracy. Ante esta situación, el desarrollador tuvo que realizar reverse engineering del formato, extrayendo información de múltiples fuentes gratuitas: descompresores como unar, libarchive, UNRARLIB, análisis con Ghidra y DOSBox-x, y múltiples iteraciones con las IAs para documentar las características. Tras semanas de trabajo, logró crear una especificación completa del formato RAR cubriendo todas las versiones, con soporte para recovery records, encriptación y archivos multi-volumen. El código resultante tiene aproximadamente 55,000 líneas en Rust y se encuentra disponible en crates.io. El artículo ofrece lecciones valiosas sobre el uso de LLMs para proyectos de ingeniería inversa: la importancia de tests exhaustivos, mantener un control estricto sobre las IAs para evitar que generen código inconsistente o 'alucinaciones', y la necesidad de intervención humana constante para guiar el desarrollo hacia resultados coherentes.
Desarrollan implementación del formato RAR en Rust usando IA en solo 5 semanas
Fuentes:
🦀 rars in Rust, bro
