Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

WASM в шрифтах

Ну вот мы и дожили до момента, когда в шрифтах появился язык программирования. В harfbuzz, лидирующей библиотеке для отрисовки шрифтов появилась встроенная поддержка WASM.

В принципе, ожидаемо — даже мне, далёкому от проблем шрифтовиков человеку, было очевидно, что сложности соединения символов, используемых на письме, не решить только декларативным образом. Более-менее очевидный пример — египетские иероглифы. Стоит немного с ними познакомиться и становится понятно, что описывать их декларативно безумно сложно.

В общем, в шрифтах появился свой язык программирования.

Естественно, все побежали делать на нём всякую весёлую дичь. Внутрь шрифтов уже засунули «Тетрис» и даже какую-то языковую модель.

Я узнал об этом развлечении поздновато, но вчера вечером тоже немного развлёкся — сделал шрифт, который из букв «на лету» делает символы азбуки Морзе.

Азбука Морзе отрисовывается через ВебАссемблер (WASM)

В принципе, что-нибудь своё написать несложно, уже есть репозиторий с готовыми примерами, можно начать прямо оттуда, даже без чтения документации. Единственное — пишется всё на Расте. Я его почти забыл, так что пришлось сначала немного освежить знания. Но в целом, если не стараться писать хороший код, что-нибудь навазюкать можно достаточно быстро.

1 комментарий
Александр Игумнов 3 мес

Подумал, что когда-нибудь появятся вредоносные шрифты, эксплуатирующие уязвимость в интерпретаторе WASM, но потом осознал, что этот интерпретатор и так встроен в каждый браузер и библиотека рисования конкретно шрифтов вряд ли расширит вектор атаки.

Евгений Степанищев 3 мес

Вы правы, да и урезан этот интерпретатор по-максимуму.