29 августа 2026 г.
Эффекты терминала заиграли в браузере: порт ttfx в wasm весит 174 КБ
ttfx уехал в браузер: 29.08 главная Omarchy заиграла ASCII-логотипом, а своей странице хватит одного тега.

DHH
@dhh
Мы притащили ttfx на главную Omarchy!! @hicsfh перевёл его в WASM. Чёрт возьми, как же это круто выглядит. https://omarchy.org/
Логотип на главной Omarchy больше не картинка: он прорисовывается на глазах, как в терминале.
Кристоффер Халлас собрал Rust-библиотеку ttfx в wasm, и 29.08 сборка приехала на сайт: PR #100 смержили в 18:37. Тот же трюк теперь ставится на любую страницу.
Сама ttfx повторяет питоновскую terminaltexteffects на Rust: 37 эффектов, медианно в 27,5 раза быстрее оригинала. В терминале эффект вешают на любой вывод пайпом, вроде ls -la | ttfx decrypt.
Как это работает. Модуль logo.js грузит laseretch.wasm и гонит кадры в кастомный элемент <wte-canvas>. Штатный элемент зациклен, поэтому Omarchy проигрывает анимацию вручную: один проход и удержание последнего кадра.
Статичный <pre> остался фолбэком. Его увидят те, у кого выключен JS или отключены анимации в системе, и все, у кого файл не загрузился.
Как поставить себе. Подключаешь модуль wte-canvas.js с хоста wte.csfh.dev (1 390 байт) и ставишь на страницу тег <wte-canvas> с атрибутами effect, input, wasm-url и frame-rate. Без wasm-url элемент подтянет дефолтный ttfx.wasm со всеми эффектами.
Вот на этом атрибуте и держится вес: сборка под один laseretch занимает 174 КБ, полный движок ttfx — 610 КБ. Наружу отдаются только готовые артефакты, исходников WTE в открытом доступе нет.
Сборки должны худеть дальше: в форке csfh уже открыта ветка под уменьшение размера односэффектного wasm.
Первоисточник
