
27 декабря 2025 года состоялся выпуск обновления открытого инструмента HarfBuzz 12.3.0 для преобразования шрифтов и строк кодов символов в форму, которая подходит для соответствующего языка и системы письма. Решение является кроссплатформенным и поддерживает сложные сценарии и языки. Исходный код проекта написан на С++ и С и опубликован на GitHub под лицензией Old MIT.
Решение HarfBuzz широко используется для рендеринга текста на различных языках, особенно на тех, которые требуют расширенных функций формирования текста, например, при работе с арабским, персидским и индийским алфавитами. Этот инструмент выполняет процесс текстовой обработки: переводит строку кодов символов в правильно организованную последовательность глифов, которая может быть отображена на экране или включена в определённый документ.
Основные изменения и доработки в HarfBuzz 12.3.0:
недопустимые таблицы шрифтов (например, GSUB/GPOS) сразу же отклоняются, вместо того чтобы частично проверяться и использоваться. Такое поведение отличается от DirectWrite и HarfRust и соответствует CoreText;
различные оптимизации скорости:
формирование AAT: ускорение state machine на Apple Silicon с использованием fast-path. На 12% быстрее в бенчмарке LucidaGrande;
формирование OpenType: ускорение поиска (Chain)Context с использованием fast-path и Coverage caching. Ускорение на 20% в бенчмарке NotoNastaliqUrdu;
отрисовка мега-вариативных шрифтов: ускорение на 30% в бенчмарке GoogleSansFlex;
отрисовка шрифтов VARC: ускорение на 5% в бенчмарке varc-hanzi.
исправлено неопределённое поведение C++ в некоторых случаях использования оператора union;
удалён режим uniscribe-bug-compatible, отключённый по умолчанию, из шейперов индийского и кхмерского языков, который ранее использовался при тестировании поведения шейперов Uniscribe;
поддержка полного создания экземпляров шрифтов с таблицей avar v2;
различные исправления, касающиеся подмножеств, сборки, фаззинга и документации.

