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;

  • различные исправления, касающиеся подмножеств, сборки, фаззинга и документации.