![](https://products-qa.fileformat.com/ru/compression/c/zstandard/header-image.png)
Zstandard
Библиотека C для мощного и быстрого сжатия
Быстрое сжатие и распаковка в режиме реального времени с помощью библиотеки C с открытым исходным кодом
Zstandard — это библиотека сжатия C с открытым исходным кодом, которая предоставляет мощный и быстрый алгоритм для высокой степени сжатия внутри приложений C. Библиотека предлагает очень широкий диапазон скоростей и доступна под двойной лицензией BSD и GPLv2. Библиотека поддерживает режим сжатия по словарю, который очень удобен для сжатия небольших данных.
Библиотека Zstandard предназначена для сценариев сжатия в реальном времени на уровне zlib и с лучшим коэффициентом сжатия. Библиотека поддерживает обычные уровни сжатия от 1 до 22. Помните, что уровни 20 и выше следует использовать с осторожностью, так как для бесперебойной работы требуется гораздо больше памяти.
API очень стабилен, хорошо документирован и очень прост в обращении. Он включает поддержку нескольких важных функций, связанных со сжатием и распаковкой, потоковым сжатием и распаковкой, вспомогательными функциями словаря, размером кадра, улучшенным управлением памятью. Библиотека также поддерживает расширенные функции для сжатия и распаковки, безбуферные и синхронные внутренние потоковые функции, потоковое сжатие без буфера и распаковку (синхронный режим).
Начало работы с Zstandard
Рекомендуемый способ установки Zstandard — с GitHub. Для плавной установки используйте следующую команду.
Установите библиотеку Zstandard через GitHub.
gh repo clone facebook/zstd
Сжатие и распаковка через C API
Библиотека с открытым исходным кодом Zstandard включает несколько важных функций для сжатия и распаковки. Библиотека предлагает функции сжатия и распаковки в памяти. Он предлагает несколько уровней сжатия, которые расширяют настройки скорости и соотношения. Вы можете легко сжимать или распаковывать один файл, а также несколько файлов с помощью одной команды. В новой версии скорость декомпрессии была еще больше улучшена.
Многопоточное сжатие и распаковка через C API
Существует несколько однопоточных библиотек сжатия, что означает, что пользователям необходимо доверять другому программному обеспечению или писать собственный многопоточный код. Библиотека с открытым исходным кодом Zstandard включает функции, которые позволяют операции сжатия использовать несколько потоков с помощью команд C. Самое замечательное, что процесс сжатия может переключаться на многопоточный API, а процесс распаковки не требует специальной обработки.
Сжатие и распаковка небольших данных
Обычно было замечено, что всегда очень трудно сжимать или распаковывать меньший объем данных. Это очень распространенная проблема, с которой сталкивается большинство программ сжатия. Библиотека Zstandard улучшила это, предложив режим обучения, который позволяет пользователям выбирать выбранный тип данных. Таким образом, для настройки программы используется небольшое количество образцов с небольшим объемом данных в обучающем модуле. Результат работы модуля обучения сохраняется в файле, называемом словарем, который используется в дальнейшем перед любым сжатием и распаковкой. Было замечено, что алгоритм сжатия учится на прошлых данных и как сжимать будущие данные. Таким образом, использование концепции словаря значительно улучшило коэффициент сжатия и распаковки для небольших данных.