brotli

Алгоритм сжатия данных без потерь, разработанный Google для эффективной упаковки веб-контента и других типов данных. Алгоритм обеспечивает высокую степень сжатия, превосходящую методы сжатия Gzip и Deflate, при сохранении высокой скорости декомпрессии.

Особенности

  • высокая степень сжатия, особенно для текстовых данных;
  • оптимизированная скорость декомпрессии;
  • поддержка потокового сжатия и распаковки;
  • 11 уровней сжатия для баланса между скоростью и эффективностью;
  • использование статического словаря для улучшения сжатия повторяющихся данных.

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

Библиотека предоставляет API для работы со сжатием и распаковкой данных (подробнее с документацией можно ознакомиться здесь):

Интерфейсы сжатия данных

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

  • BrotliEncoderCompress() — одношаговое сжатие данных;
  • BrotliEncoderCreateInstance() — создание экземпляра кодировщика для потокового сжатия;
  • BrotliEncoderCompressStream() — пошаговая обработка данных при потоковом сжатии;
  • BrotliEncoderDestroyInstance() — освобождение ресурсов кодировщика;
  • BrotliEncoderSetParameter() — настройка параметров сжатия.

Интерфейсы распаковки данных

API для восстановления исходных данных из сжатого потока Brotli. Предоставляет функции как для однократной декомпрессии буфера, так и для последовательной обработки потока сжатых данных с контролем состояния декодера.

  • BrotliDecoderDecompress() — одношаговая распаковка данных;
  • BrotliDecoderCreateInstance() — создание экземпляра декодировщика;
  • BrotliDecoderDecompressStream() — пошаговая обработка сжатых данных;
  • BrotliDecoderDestroyInstance() — освобождение ресурсов декодировщика;
  • BrotliDecoderHasMoreOutput() — проверка доступности данных для чтения.

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

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

  • BrotliEncoderMaxCompressedSize() — вычисление максимального размера сжатых данных;
  • BrotliEncoderVersion() и BrotliDecoderVersion() — получение версии библиотеки;
  • BrotliEncoderGetParameter() — получение текущих параметров кодировщика.

Интеграция с системами отчетов

Набор предопределённых значений для управления работой алгоритма сжатия: уровни качества (от 0 до 11), определяющие соотношение скорость/степень сжатия, и размер скользящего окна (от 1KB до 16MB), влияющий на использование памяти.

  • BROTLI_DEFAULT_QUALITY (11) — уровень сжатия по умолчанию (максимальный).
  • BROTLI_MIN_QUALITY (0) и BROTLI_MAX_QUALITY (11) — минимальный и максимальный допустимые уровни сжатия.
  • BROTLI_DEFAULT_WINDOW (22) — размер окна сжатия по умолчанию (логарифм от размера в байтах).
  • BROTLI_MIN_WINDOW_BITS (10) и BROTLI_MAX_WINDOW_BITS (24) — минимальный и максимальный допустимые размеры окна сжатия.

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

Документация по использованию 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 = (
        "brotli/1.1.0@aurora",
    )    

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

brotli

Brotli compression format
Лицензия
MIT
Версия
Домашняя страница
Скачать
armv8
417.08 Kb
MD5: d6ed245125806997e78acedf74b79495
Updated: 03.09.2025, 18:08:51
x86_64
408.16 Kb
MD5: d997df2bb1b6ab999ec30dd37749b6f2
Updated: 03.09.2025, 18:09:04
armv7
373.58 Kb
MD5: d60ffd842677f0f0faef4df9885afe86
Updated: 03.09.2025, 18:09:00
Использование в проекте

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

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