Релиз эмулятора терминала Shitty

Опубликован первый релиз эмулятора терминала Shitty, позиционируемого автором как «серьёзный эмулятор терминала с глупым названием». Проект написан на C++23 (сbundled libstd, требующей -std=c++26) и распространяется под двойной лицензией MIT и GPL-3.0. Поддерживаются macOS и Linux. При разработке используется AI-ассистент.

Проект делает ставку на обеспечение низких задержек, быстрого запуска и предсказуемого потребления ресурсов: состояние терминала обрабатывается на CPU, а отрисовка выполняется через бэкенды на базе Vulkan в Linux и Metal в macOS, без использования стороннего графического тулкита. При тестировании производительности вывод 100 МБ ASCII через терминал Shitty показывает ~118 МиБ/с, обгоняя alacritty (0.81 с против 0.96 секунд), kitty и ghostty. На «случайных байтах» с некорректным UTF-8 отрыв от alacritty ещё заметнее (~51 МиБ/с против ~31 МиБ/с).

Корректность работы обеспечивается более чем 5000 тестами, собранными из десятка с лишним внешних наборов — kitty, esctest, vttests из xterm, vttest, tack, libvterm, libtsm, alacritty, ghostty, contour, konsole, mosh. Тесты выполняются с проверкой работы на реальном PTY.

Среди прочих особенностей — работа с графемными кластерами вместо codepoint-ов (emoji-последовательности), изменение размера без мерцания (кадры отрисовываются в той же транзакции, что и изменение границ), ленивая растеризация глифов с постоянным GPU-кешем. Имеется поддержка VT52–VT5xx, расширений xterm, протоколов клавиатуры и мыши Kitty/SGR/urxvt, отображения гиперссылок (OSC 8) и интеграции с командной оболочкой. Шрифты встраиваются в исполняемый файл st, что позволяет запускать приложение даже в системе без установленных шрифтов.

Источник: http://www.opennet.ru/opennews/art.shtml?num=66020