zlib

Библиотека сжатия данных общего назначения, реализующая алгоритм DEFLATE. Она предоставляет функции для сжатия и распаковки данных в форматах, совместимых с gzip и PKZIP. Библиотека широко используется в приложениях и системах, где требуется эффективное сжатие данных, например, в сетевых протоколах (HTTP, SSH), файловых форматах (PNG, PDF) и архиваторах.

Особенности

  • реализация алгоритма DEFLATE с настраиваемой степенью сжатия;
  • поддержка форматов: сырой поток DEFLATE, zlib-обёртка и gzip-обёртка;
  • функции для вычисления контрольных сумм CRC-32 и Adler-32;
  • простая интеграция через заголовочный файл zlib.h.

Основные компоненты

Библиотека состоит из нескольких модулей, предоставляющих функции для различных сценариев работы с данными (подробнее с документацией можно ознакомиться здесь).

Сжатие данных

Основной интерфейс для сжатия данных реализован через потоковый API, позволяющий обрабатывать данные по частям.

Основные функции:

  • deflateInit() / deflateInit2() — инициализация структуры потока для сжатия с заданным уровнем сжатия;
  • deflate() — сжатие входных данных; может вызываться многократно;
  • deflateEnd() — завершение сжатия и освобождение ресурсов;
  • deflateReset() — сброс состояния потока для повторного использования;
  • deflateParams() — динамическое изменение параметров сжатия;
  • deflateBound() — оценка максимального размера сжатых данных.

Распаковка данных

Аналогично сжатию, распаковка выполняется через потоковый API.

Основные функции:

  • inflateInit() / inflateInit2() — инициализация структуры потока для распаковки;
  • inflate() — распаковка входных данных; может вызываться многократно;
  • inflateEnd() — завершение распаковки и освобождение ресурсов;
  • inflateReset() — сброс состояния потока;
  • inflateGetDictionary() / inflateSetDictionary() — работа с предопределённым словарём.

Работа с файлами в формате gzip

Для удобной работы с gzip-файлами предоставляется обёртка, аналогичная функциям стандартной библиотеки.

Основные функции:

  • gzopen() — открытие gzip-файла для чтения или записи;
  • gzread() — чтение распакованных данных из gzip-файла;
  • gzwrite() — запись данных в gzip-файл со сжатием;
  • gzprintf() — форматированный вывод в gzip-файл;
  • gzputs() / gzgetc() — построчный ввод-вывод;
  • gzclose() — закрытие gzip-файла;
  • gzerror() — получение строки ошибки.

Контрольные суммы

Библиотека включает функции для вычисления контрольных сумм, используемых в форматах zlib и gzip.

Основные функции:

  • crc32() — вычисление CRC-32;
  • adler32() — вычисление Adler-32 (более быстрая, но менее надёжная альтернатива CRC);
  • crc32_combine() / adler32_combine() — объединение контрольных сумм нескольких блоков.

Управление памятью и вспомогательные функции

Для настройки аллокаторов и получения информации о библиотеке.

Основные функции:

  • zlibVersion() — возвращает строку с версией библиотеки;
  • zError() — возвращает строку описания ошибки по коду;
  • deflateGetDictionary() — получение текущего словаря;
  • compress() / uncompress() — простые функции для однократного сжатия/распаковки блока данных;
  • compress2() — сжатие с заданным уровнем;
  • uncompress2() — распаковка с возвратом реального размера.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "zlib/1.3.1@aurora",
    )    

Процесс локальной сборки описан в документации.

zlib

Лицензия
Zlib
Версия
Домашняя страница
Скачать
armv7
84.31 Kb
MD5: ef26c9baedb92988358d8b21c615e06c
Updated: 15.10.2025, 00:00:42
armv8
92.71 Kb
MD5: f49479d4c0edd4afa5f8a12bca94b12d
Updated: 14.10.2025, 23:59:29
x86_64
92.97 Kb
MD5: 98d2f649702e64c5488288add55a4e75
Updated: 15.10.2025, 00:00:35
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.