
14 и 15 июля, после почти месяца активной разработки, состоялись релизы версий 0.13.0 и 0.13.1 SIMD-оптимизированной библиотеки и кроссплатформенной консольной утилиты ZXC. Инструмент предназначен для высокопроизводительного многопоточного асимметричного сжатия данных без потерь и оптимизирован специально под игровые ресурсы, прошивки устройств и пакеты приложений. Сам формат спроектирован по принципу «один раз записать, многократно читать» (WORM).
В отличие от популярных кодеков вроде LZ4, библиотека ZXC сознательно жертвует скоростью сжатия ради достижения максимальной пропускной способности в процессе распаковки.
Разработчики заявляют, что скорость распаковки новых версий превышает показатели LZ4 с настройками по умолчанию на 9–48%, демонстрируя при этом аналогичный или даже более высокий коэффициент сжатия.
Главным нововведением свежих релизов стал седьмой уровень компрессии (ультра), в котором задействован относительно недавно представленный SIMD-оптимизированный алгоритм PivCo-Huffman («pivot-coded Huffman»). Он позволяет превзойти по коэффициенту сжатия стандартный алгоритм zstd (-1), сохраняя при этом скорость декодирования примерно в два раза выше. Кроме того, создатели полностью переработали энтропийное декодирование, что дало прирост его скорости на 5–13% на шестом уровне сжатия на всех тестовых процессорах.
Контейнерный формат был обновлен до седьмой версии, которая станет последним запланированным изменением структуры данных. Выход ветки 0.13 знаменует собой завершающий этап перед релизом стабильной версии 1.0, после чего формат контейнера ZXC будет окончательно зафиксирован для обеспечения стабильности и обратной совместимости.
Проект написан на языке программирования C и распространяется под открытой лицензией BSD 3.
Среди прочих изменений и улучшений:
- декомпрессия теперь может осуществляться в пределах одного буфера: исходные сжатые данные размещаются в правой его части и распаковываются слева направо в рамках единого выделенного блока памяти, что существенно снижает пиковое потребление оперативной памяти в системах с жесткими ограничениями;
- реализовано кеширование словаря дерева Хаффмана: общая таблица литералов декодируется в готовое к работе дерево однократно на этапе инициализации, а не для каждого блока по отдельности, что заметно ускорило обработку мелких блоков;
- повышена общая отказоустойчивость и улучшены механизмы распределения и контроля памяти во всей библиотеке;
- консольная утилита zxc получила удобный индикатор прогресса, более строгий и надежный синтаксис аргументов, а также улучшенную систему ввода-вывода файлов;
- проведены масштабные доработки языковых врапперов для Go, NodeJS, Python, Rust и WASM;
- существенно расширена и улучшена техническая документация;
- устранены ранее выявленные ошибки и недочеты.





