Chrome переходит с библиотеки рендеринга шрифтов FreeType на проект Skrifa, написанный на Rust
Разработчики веб-браузера Google Chrome сообщили, что отказываются от библиотеки рендеринга шрифтов FreeType и переходят на открытый проект Skrifa, написанный на Rust, для лучшей безопасности памяти при обработке шрифтов в интернете и предоставляющий возможности для обработки шрифтов в формате OpenType.
Проект Skrifa реализует подмножество возможностей шрифтового движка FreeType, необходимое для 2D‑библиотеки Skia, применяемой в Chrome и Chromium. Для избавления библиотеки Skia от привязки к движку FreeType создан новый шрифтовой бэкенд, основанный на Skrifa.
По информации OpenNET, в Chrome 128 написанный на Rust бэкенд был включён в экспериментальном режиме для редко используемых форматов шрифтов, таких как CFF2 и цветные шрифты. Начиная с выпуска Chrome 133 новый бэкенд задействован для всех веб‑шрифтов в сборках для платформ Linux, Android и ChromeOS. На платформах Windows и macOS новый движок пока используется в качестве запасного и применяется в случае, если система не поддерживает формат шрифта, который пытается отобразить браузер.
Код Skrifa разработан инженерами Google в рамках инструментария Fontations и опубликован под лицензиями MIT и Apache 2.0. Для проверки корректности работы Skrifa подготовлено около 700 unit‑тестов. Библиотека проекта поддерживает декодирование глифов в форматах glyf, CFF, CFF2, COLRv0, COLRv1, EBDT, CBDT и sbix, вариативные шрифты в форматах glyf, CFF2 и COLRv1, хинтиг шрифтов в форматах glyf, CFF и CFF2.
Помимо библиотеки Skrifa, предоставляющей API для доступа к метаданным шрифтов и загрузки контуров глифов, инструментарий Fontations включает низкоуровневые библиотеки для чтения, разбора, изменения и создания шрифтовых данных в формате OpenType. В свою очередь Fontations является частью
Читать на habr.com