← На главную

Автор написал медленный бесплатный RAR-декодер на Rust

13.05.2026 19:59 · hackernews

Автор провёл пять недель, отрываясь от дел по вечерам и выходным, чтобы выжать из LLMs максимум в интересном проекте: создать свой собственный декодер для формата RAR. Работа велась с помощью OpenAI Codex 5.5 и Claude Opus 4.7, что стоило примерно 40 фунтов стерлингов. Релеза не удалось добиться быстро, код получился громоздким и медленным, но инструмент работает. Автор собрал данные из открытых источников, включая unar и libarchive, и попросил ИИ документировать формат. Сначала процесс занял две недели, чтобы закрыть разрыв в понимании структуры файлов, хотя вопросы создания архивов оставались под вопросом. Далее пришлось взломать бинарники DOS и Windows с помощью Ghidra и DOSBox-x, чтобы понять внутренние алгоритмы. Кодеры выбрали Rust для реализации CLI. Автор жаловался на поведение разных моделей: Opus генерит код слишком энтузиазмично, Claude требует строгого контроля, а Codex 5.5 остаётся нацеленным, если его не отвлекать. Иногда процесс останавливался из-за нарушений правил, и автору приходилось вручную очищать контекст от упоминаний платных функций аутентификации. Автор отказался от реализации таких функций, чтобы не нарушать правила.

Для обеспечения стабильности автор написал десятки утомительных тестов, которые заставляли ИИ следовать реальности. Эмпирические проверки позволили отточить спецификацию формата до состояния, близкого к истине. Периодически генерировались обзоры кода, чтобы удерживать проект от превращения в хаос. Автор также использовал функцию goal в OpenAI, которая позволяет роботу работать бесконечно долго, перезапускаясь при переполнении контекста. Кодер проработал над проектом более шести часов, превалируя около 40000 строк кода. Хотя оптимизация сжатия далась легко, производительность Rust-версии оказалась хуже, чем у WinRAR, созданного русским хакером десятилетия назад. Новые модели часто пишут код без комментариев, что приводило к регрессиям в совместимости. ИИ также не замечал проблем с пользовательским интерфейсом, если его специально не подталкивали к этому. В итоге авторы получили медленный и грубый инструмент, но он бесплатен и работает. Проект доступен на crates.io.

Читать оригинал →