Представлен открытый демо-проект Ghostling — минималистичный терминал на основе libghostty
Команда проекта Ghostty (разрабатывает эмулятор терминала с GPU-ускорением для отрисовки контента) представила открытый демо-проект Ghostling — минималистичный терминал на основе libghostty.
«Ghostling — это демонстрационный проект, призванный показать минимальный функциональный терминал, построенный на основе C API libghostty в одном файле C». — пояснили разработчики решения.
В проекте используется Raylib для работы с окнами и рендеринга. Проект однопоточный (хотя libghostty-vt поддерживает многопоточность) и использует 2D-графический рендерер вместо прямого рендерера GPU, как основной графический интерфейс Ghostty. Это сделано для демонстрации гибкости libghostty и того, как его можно использовать в различных контекстах.
«Предупреждение: терминал Ghostling не предназначен для повседневного использования в качестве полноценного терминала. Это минимальный жизнеспособный терминал, основанный на libghostty. Кроме того, поскольку это, по сути, демонстрация, я не проверял тщательно каждое место на корректность, и это C, так что вы предупреждены», — уточнил один из разработчиков Ghostling.
Libghostty — это встраиваемая библиотека, извлечённая из ядра Ghostty, предоставляющая API на C и Zig, благодаря чему любое приложение может встраивать корректную и быструю эмуляцию терминала.
Проект Ghostling использует libghostty-vt, библиотеку без зависимостей (даже без libc), которая обрабатывает парсинг последовательности VT, управление состоянием терминала (положение курсора, стили, переформатирование текста, прокрутка и управление состоянием рендерера. Эта библиотека не содержит кода отрисовки или оконного отображения; потребитель (в данном случае Ghostling) предоставляет свой собственный код для этих действий. Основная логика в проекте
Читать на habr.com