AllSorts - это анализатор шрифта, формирование двигателя и подмножество для Opencepe, Woff и Woff2, полностью написанного в ржавчине. Он был извлечен из Принца, инструмента, который насытит и излагает документы HTML и CSS в PDF.
Двигатель формирования AllSorts был разработан в сочетании со спецификацией для формирования OpenType, которая направлена на указание поведения по формированию шрифта OpenType.
glyf , CFF , CFF2 ), WOFF и WOFF2.Формирование шрифта - это процесс принятия текста в форме кодепоинтов Unicode и шрифта, а также выкладывание глифов из шрифта в соответствии с текстом. Это включает в себя честь кернинга, лигатур и замены, указанных шрифтом. Для некоторых языков это относительно просто. Для других, таких как индийские сценарии, это довольно сложно. После формирования другая библиотека, такая как Pathfinder или Freetype, отвечает за рендерирование глифов. Чтобы узнать больше о рендеринге текста, у Андреа Когнулато есть хороший обзор современного шрифта на Linux. Концепции остаются одинаковыми на других платформах.
Обратитесь к репозиторию инструментов AllSorts для набора инструментов, которые используют все сортировки, формирование и подмножество шрифтов.
В настоящее время мы не поддерживаем:
Известные ограничения:
Allsorts все еще находится в активном развитии, но достиг своей первой вехи выпуска с включением в Prince 13 в 2019 году. В Принсе он отвечает за всю загрузку шрифтов и формирование шрифтов.
В настоящее время код анализа шрифта от руки написан. Это планируется, чтобы это в конечном итоге было заменено на машинный код с помощью нашего языкового проекта по определению декларативных данных.
AllSorts CI запускает тесты на Linux, MacOS и Windows. Через Принц он также построен для FreeBSD.
Минимальная поддерживаемая версия ржавчины: 1.66.0
Чтобы построить ящик, убедитесь, что у вас есть ржавчина 1.66.0 или более новая установка.
Стройте с помощью cargo build и запустите тесты с cargo test .
| Особенность | Описание | По умолчанию включено | Дополнительные зависимости |
|---|---|---|---|
outline | Включить код для доступа к схемам Glyph | ✅ | |
flate2_zlib | Используйте бэкэнд Zlib для Flate2 | ✅ | zlib |
flate2_rust | Используйте бэкэнд ржавчины для Flate2 | miniz_oxide | |
prince | Включить конкретные тесты и код принца | ||
specimen | Включить модуль для генерации образцов шрифтов HTML | upon , unicode-blocks |
Примечание. В нашем тестировании бэкэнд zlib flate2 был быстрее, но вы можете предпочесть бэкэнд ржавчины для чистого раствора ржавчины при компиляции для WASM или аналогичного.
Взносы приветствуются, пожалуйста, обратитесь к документу для получения более подробной информации.
Мы стремимся поддерживать стандарты сообщества Rust:
Мы стремимся обеспечить дружескую, безопасную и гостеприимную среду для всех, независимо от пола, сексуальной ориентации, инвалидности, этнической принадлежности, религии или аналогичной личной характеристики.
Мы следуем кодексу поведения ржавчины.
Allsorts распределяется в соответствии с условиями лицензии Apache (версия 2.0).
Смотрите лицензию для деталей.