ZXC 0.8.0 и 0.8.1

good-penguin.png

Состоялся выпуск 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

©  Linux.org.ru