ZXC 0.8.0 и 0.8.1

Состоялся выпуск 0.8.0 библиотеки и консольной утилиты ZXC (github.com), реализующих высокопроизводительное асимметричное сжатие без потерь и оптимизированное для игровых ресурсов, прошивок и пакетов приложений.
Декларируется на 40%+ более быстрая распаковка, чем LZ4 на ARM64, с лучшими коэффициентами сжатия.
Проект написан на языке C и распространяется по лицензии BSD 3.
Список изменений:
- Версия формата теперь 5, «ломающая» совместимость:
- Реализовано смещение LZ (+1) на уровне формата для устранения потенциальных векторов атаки с нулевым смещением.
- Контрольные суммы заголовков теперь используют алгоритм Marsaglia xorshift.
- Новая стратегия хеширования LZ77 и оптимизация конфигурации хеш-таблиц обеспечивают значительное повышение производительности на различных архитектурах, особенно при высоких уровнях сжатия.
- Значительные улучшения для уровней сжатия 3–5, демонстрирующие увеличение скорости сжатия на 33–43% как на архитектурах x86_64, так и на ARM64.
- Заметные улучшения для более быстрых уровней сжатия (1 и 2), с увеличением скорости на 10–18% на x86_64 и ~8–10% на ARM64.
- Переработана обработка и коды ошибок. Python-враппер теперь предоставляет доступ к этим константам ошибок C для обеспечения улучшенной и нативной отчетности об ошибках.
- Размер
ZXC_BLOCK_SIZEбольше не ограничивается 1 МБ. Формат файла ZXC теперь официально поддерживает размеры блоков до 8 МБ. - В консольную утилиту добавлен режим обработки нескольких файлов: опция
-m(или--multiple) позволяет обрабатывать несколько входных файлов одной командой. Каждый файл обрабатывается независимо, а имена выходных файлов автоматически производятся от входных (например, файлfile.txtсжимается вfile.txt.xc, файлfile.txt.xcраспаковывается вfile.txt). - В консольную утилиту также добавлен режим рекурсивной обработки директорий: опция
-r(или--recursive) позволяет обрабатывать все файлы в указанных директориях и их поддиректориях. - Другие улучшения (документация, тестирование) и исправления ошибок.
- В версии 0.8.1 исправлена только генерация динамической библиотеки
libzxc.so.1для сохранения возможности использования прежних версий библиотеки.
>>> Подробности на GitHub
