Спустя два года Google выпустила Brotli 1.2 с более быстрым сжатием

После двух лет разработки компания Google выпустила Brotli 1.2 — значительное обновление широко используемой библиотеки сжатия с открытым исходным кодом для систем Linux, веб-серверов и браузеров. Предыдущая версия, 1.1, вышла в августе 2023 года, что делает этот релиз долгожданной модернизацией одного из самых эффективных инструментов сжатия в современных вычислениях.
В области безопасности привязки Python получают новый метод Decompressor::can_accept_more_data и необязательный параметр output_buffer_limit в Decompressor::process. Это помогает предотвратить сценарии, в которых ненадёжные входные данные могут привести к неожиданно большому объёму распакованных данных.
С точки зрения производительности, и кодер, и декодер теперь имеют статическую инициализацию, что уменьшает размер двоичных файлов и сокращает время запуска. Само кодирование выполняется быстрее, что делает Brotli ещё более привлекательным для задач сжатия на веб- и системном уровнях.
Релиз также включает в себя:
- Новый декодер на основе Kotlin для приложений на базе JVM.
- Псевдоним
brcatдля командной строки, который упрощает декодирование объединённых потоков Brotli. - Поддержка CGo для «сырых» словарей, улучшающая интеграцию с приложениями на языке C.
- Обновлены модули сборки Bazel и установлены справочные страницы для улучшения удобства сопровождения и документирования.
Что касается очистки, то в Brotli 1.2 удалено устаревшее использование finalize() в привязках к Java и исправлена проблема с длиной кодирования в Java-компрессоре. Система сборки была оптимизирована за счёт связывания с pkg-config и модернизации расширений Python, поддерживающих многоэтапную инициализацию модулей.
Для получения дополнительной информации см. журнал изменений: https://github.com/google/brotli/releases/tag/v1.2.0.
Редактор: AndreyEx
Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.