Вышла libghostty-vt 1.0: библиотека эмуляции терминала со стабильным ABI
Создатель терминала Ghostty Митчелл Хашимото объявил о выходе версии 1.0 библиотеки libghostty-vt. Она предлагает стабильный интерфейс на C и уже используется в IDE от JetBrains и других проектах.
Разработчик Митчелл Хашимото (Mitchell Hashimoto), автор терминального приложения Ghostty, объявил о выходе версии 1.0 библиотеки libghostty-vt. Это переносимая высокопроизводительная библиотека на C для эмуляции терминала, выделенная из ядра Ghostty. С версией 1.0 стабильными объявлены как сама библиотека, так и её C ABI (двоичный интерфейс, позволяющий программам продолжать работать с библиотекой после обновлений). Это важно для разработчиков приложений и для тех, кто собирает пакеты для дистрибутивов операционных систем.
Кто уже использует
По словам Хашимото, библиотека работает в продуктах, которыми пользуются миллионы людей. Терминал в IDE от JetBrains, включая IntelliJ, PyCharm и GoLand, теперь построен на libghostty; по данным JetBrains, это более 12,5 миллиона активных пользователей. В редакторе Neovim одобрен запрос на слияние, заменяющий libvterm на libghostty-vt и закрывающий 10-летнюю проблему с перекомпоновкой истории прокрутки при изменении размера окна. Библиотеку также используют Vercel Turborepo, devenv и OrbStack, а привязки есть для нескольких языков программирования, среди них Rust, Go, Python и Swift.
Стабильность ABI и упаковка
Библиотека следует семантическому версионированию. Все объекты представлены непрозрачными дескрипторами, а программы, собранные с более новыми заголовками и связанные со старой библиотекой, получают результат GHOSTTY_UNSUPPORTED вместо аварийного завершения. Политика ABI проверяется в системе непрерывной интеграции с помощью инструмента libabigail. Каждый релиз включает подписанный архив исходного кода и архив зависимостей, чтобы дистрибутивы могли собирать библиотеку без доступа к сети.
Лицензия и платформы
libghostty-vt распространяется по лицензии MIT, во время работы требует только libc, а в дереве зависимостей нет кода с копилефт-лицензиями. Библиотека собирается и тестируется на Linux, macOS, iOS, FreeBSD, Windows, Android и WebAssembly. В одном из тестов Хашимото одновременно запустил 10 000 активных терминалов на сервере с 4 ядрами и 8 ГБ оперативной памяти.
В дальнейшем проект планирует сохранять стабильность и поддерживать как можно больше терминальных протоколов.

