Что это такое?
Gocui — это минималистичный пакет для Go, с помощью которого создают консольные интерфейсы (TUI): текстовые приложения, работающие прямо в терминале, с окнами, горячими клавишами и поддержкой мыши.
Так это готовая программа, которую я запускаю, или библиотека, на которой я пишу своё приложение?
Это библиотека, а не готовая программа: вы подключаете её к своему Go-проекту и через её минималистичный API собираете собственный интерфейс для терминала.
Как добавить её в проект?
Выполните go get github.com/jroimartin/gocui и импортируйте её, как любой другой пакет Go — кроме самого Go ничего дополнительно ставить не нужно. Полная справка по API есть на pkg.go.dev.
Как в нём устроен интерфейс — что такое «views»?
Views («представления») — это базовые кирпичики, аналог окон в графическом интерфейсе. Каждое представление реализует io.ReadWriter, то есть пользовательский ввод из него читается, а вывод в него пишется, как в файл; представления могут перекрывать друг друга.
Могут ли приложения на нём реагировать на клавиатуру и мышь?
Да — горячие клавиши можно назначать глобально или для отдельного представления, ввод с мыши тоже поддерживается. Выведенный текст можно раскрашивать, а режим редактирования текста настраивается.
Могу ли я менять интерфейс, пока приложение работает?
Да. Интерфейс можно изменять прямо во время работы, и это безопасно при параллельном выполнении: даже если к нему одновременно обращаются несколько частей программы, всё остаётся согласованным.
Насколько gocui зрелый проект?
Он существует с 2014 года и собрал более 10 000 звёзд на GitHub, так что это проверенный временем вариант для терминальных интерфейсов на Go. Распространяется под разрешительной лицензией BSD-3-Clause.
Which topics is it in?
mouse, widgets, keyboard, lightweight, concurrency, tui, bsd, developers, ui, go, gui, free


