Домой Софт macOS и Linux Проект rars подготовил свободную реализацию RAR с поддержкой создания архивов

Проект rars подготовил свободную реализацию RAR с поддержкой создания архивов

Инструментарий на языке Rust позволяет создавать и распаковывать RAR-архивы без использования проприетарного кода unrar.

Представлен проект rars — новая свободная реализация инструментария для работы с форматом RAR. Программное обеспечение написано на языке Rust и примечательно тем, что поддерживает не только распаковку, но и создание полноценных RAR-архивов. Проект охватывает широкий спектр версий формата: от ранних 1.3 и 1.4 с сигнатурой «RE~^» до современной итерации RAR 7.

Инструментарий включает поддержку всех ключевых функций, к которым привыкли пользователи проприетарного ПО: разбиение на тома, защита паролем, шифрование заголовков, добавление комментариев, работу с RARVM-фильтрами, а также использование индексов для ускорения открытия и алгоритмов восстановления поврежденных данных. Исходный код распространяется под свободными лицензиями MIT и Apache-2.0. Для разработчиков на Python подготовлены обвязки через библиотеку PyO3, предоставляющие API в стиле rarfile (для чтения) и RarBuilder (для создания архивов).

Преодоление лицензионных ограничений

Ключевая особенность rars заключается в том, что разработка велась полностью с нуля без использования кода официальной утилиты unrar. Последняя распространяется под лицензией, которая прямо запрещает использование кода для воссоздания алгоритмов сжатия или создания совместимых архиваторов. До текущего момента эти жесткие ограничения вынуждали большинство свободных проектов ограничиваться лишь извлечением данных, тогда как для создания RAR-архивов пользователям приходилось прибегать к проприетарным решениям от RARLAB.

Параллельно авторы опубликовали репозиторий rar-research, содержащий подробные спецификации для различных версий формата (от 1.3 до 7.0), а также технические заметки об алгоритмах сжатия, шифрования и методах защиты целостности. Поскольку официальной документации не существовало, данные были восстановлены путем анализа старых бинарных версий RAR для DOS и Windows, изучения существующих реализаций и тестовых архивов.

Роль ИИ в создании проекта

Реализация проекта заняла около пяти недель работы, причем значительную часть кода удалось сгенерировать с помощью инструментов OpenAI Codex 5.5 и Claude Opus 4.7. На первом этапе нейросети использовались для систематизации данных и описания формата, а затем — для написания кода на Rust.

Автор отмечает, что ИИ отлично справился с рутинными задачами, но архитектурный контроль остался за человеком. Без жесткого надзора модели склонны к усложнению кода и пропуску критических ошибок, поэтому тесты и документация служили для них своеобразными направляющими рельсами. Ускорить процесс помог режим «/goal» в OpenAI Codex, позволявший ИИ-агенту работать над задачей автономно до 16 часов подряд. Итоговые затраты на токены составили около 40 фунтов стерлингов.

Техническое состояние и перспективы

На текущий момент rars уступает оригиналу по производительности: скорость сжатия и распаковки ниже, чем у WinRAR. Также наблюдается отставание в степени сжатия на 5–10%. Тем не менее, в проект уже внедрены экспериментальные функции: режим «—features fast» (использование SIMD-инструкций) и «—features parallel» (многопоточное сжатие через библиотеку Rayon).

Евгений Рошал, автор оригинального формата RAR, уже прокомментировал ситуацию, указав на возможные нарушения лицензионных соглашений при обратном инжиниринге старых бинарных файлов. На данный момент разработчик воздерживается от конкретных мер, ожидая официальной позиции компании win.rar GmbH.

Источник: http://www.opennet.ru