Pull to refresh

FreeArc — современный архиватор

Reading time4 min
Views35K
Столько всего хочется хранить на жестком диске: фильмы, музыку, программы, документы… Но, к сожалению, винчестер – не резиновый. Заставить данные потесниться смогут программы-архиваторы. Сейчас довольно сильно распространены 7Zip и WinRAR, но в данный момент по эффективности все же лидирует FreeArc. По результатам одного из самых авторитетных тестов FreeArc занял три первых места, причём c большим отрывом от соперников:



FreeArc, кстати, как и 7Zip, бесплатен и у него открытые исходные коды.
Несколько лет назад мне посчастливилось поучаствовать в этом интересном проекте. Моим вкладом в проект FreeArc стала оболочка wArc для его консольного варианта, которую я написал на .Net. По прошествии стольких лет, я был удивлен отсутствием информации на хабрахабре о нем. Собственно в этой статье я и хочу рассказать об FreeArc.

Написан FreeArc на функциональном языке программирования Haskell. В качестве основных алгоритмов сжатия для текстов является ppmd, для всех остальных типов данных lzma. У FreeArc, как говорилось в начале статьи, потрясающая производительность: в среднем он работает в 2-5 раза быстрее программ аналогичного класса (ccm, 7-zip, rar, uharc -mz, pkzip) при сравнимой степени сжатия.

Краткая история


Первая версия архиватора появилась в относительно далеком 2004 году. А в 2010 году, точнее с версии 0.666, автор решил вынести его для публичного применения. Кстати, если появятся вопросы непосредственно автору архиватора, то он просит их задавать на форуме.

Основные достоинства и возможности


  • Автоматическое переключение между различными методами сжатия. Переключение производится на основе анализа расширения файла, однако в ближайшем будущем автор анонсирует переключение на основе анализа содержимого;
  • Богатый набор методов сжатия, благодаря чему он демонстрирует высокую степень сжатия и завидную производительность;
  • Помимо основных методов сжатия, в FreeArc также предусмотрены специальные препроцессоры. С их помощью можно обработать сжимаемые данные перед тем, как они будут поданы на вход одному из основных методов сжатия. В некоторых случаях это позволяет улучшить степень сжатия.

Функциональность


  • Непрерывные (solid) архивы с умным обновлением;
  • Шифрование AES/Blowfish/Twofish/Serpent;
  • Модули для подключения к FAR и Total Commander;
  • Создание самораспаковывающихся (SFX) архивов и инсталяторов;
  • Работа с архивами по протоколу HTTP (получение списка файлов, распаковка);
  • Восстановление архивов;
  • Тестирование архивов перед и после любой операции;
  • Перемещение файлов в архив, объединение архивов, переархивация, блокировка и комментирование архива;
  • Выбор файлов по размеру, времени создания, имени, атрибутам;
  • Поддержка базовых каталогов на диске и в архиве, автоматическая генерация имени архива;
  • Гибкая настройка.

Почему FreeArc сжимает сильнее:


  • поддерживает алгоритмы lzma, ppmd и multimedia-сжатие с автоматическим выбором наилучшего алгоритма по содержимому файла;
  • использует фильтры dict (словарная замена), rep (находит повторы на расстоянии до 2Гб), delta (улучшает сжатие таблиц в бинарных файлах), bcj (EXE-фильтр), lzp (устраняет повторы в текстовых файлах);
  • в режиме максимального сжатия запускает процедуры сжатия не параллельно, а последовательно, выгружая промежуточные данные на диск, что позволяет каждой процедуре использовать всю память компьютера;
  • если вам мало встроенных алгоритмов — вы можете использовать внешние: от препроцессора сжатых данных precomp до алгоритмов максимального сжатия ccmx/lpaq/durilca/uda/paq;
  • плюс к этому производится интеллектуальная сортировка файлов, группирующая вместе одинаковые/похожие файлы и различные версии одного и того же файла.

Почему FreeArc сжимает быстрее:


  • для текстовых файлов автоматически использует алгоритм ppmd, который работает быстрее, чем lzma;
  • для поиска строк в lzma использует новый алгоритм ht4;
  • использует фильтры rep, dict и lzp, уменьшая размер фактически сжимаемых данных;
  • в быстрых режимах (-m1/m2) использует уникальный алгоритм сжатия tornado и алгоритм grzip;
  • выполняет чтение и сжатие данных параллельно, поэтому задержки дисковых операций влияния не оказывают.

Об авторе архиватора


Автор – Булат Зиганшин, практически мой земляк, тоже живет в Татарстане, но в Набережных Челнах.
Во времена DOSа был очень популярный архиватор – arj. Так вот, Зиганшину принадлежит версия arjz с более плотной упаковкой данных. В последующие годы он разработал архиватор Tornado и … если открыть архиватор WinRAR, в нем — Справку — О программе — благодарности
то можно прочитать: «Значительно увеличить степень и скорость сжатия архивов RAR позволили полезные советы Александра Хорошева и Булата Зиганшина.» То есть он в какой-то мере является соавтором RARа.

В общем, FreeArc — весьма достойный проект. Надеюсь, он продолжит свое динамичное развитие.

P.S. Не следует забывать, что архиватор FreeArc пока экспериментальный, для ответственного хранения вряд ли его следует использовать (под экспериментальным автор понимает в частности то, что в любой момент формат сжатия может быть изменен и новые версии не смогут открыть старые архивы).

Ссылки


  1. Репозиторий проекта
  2. Статистика пользователей архиватора
  3. Детальная история версий
  4. Трекер: список планируемых улучшений по версиям

Скриншоты кроссплатформенного графического интерфейса:



Просмотр и распаковка архива напрямую из Интернета


Информация об архиве


Выбор метода сжатия


Интеграция с Explorer


Версия для Linux


Самораспаковывающийся архив
Tags:
Hubs:
Total votes 104: ↑93 and ↓11+82
Comments196

Articles