marcusolsson / tui-go
- пятница, 3 ноября 2017 г. в 03:15:01
A UI library for terminal applications.
A UI library for terminal applications.
tui (pronounced tooey) provides a higher-level programming model for building rich terminal applications. It lets you build layout-based user interfaces that (should) gracefully handle resizing for you.
IMPORTANT: tui-go is still in an experimental phase so please don't use it for anything other than experiments, yet.
go get github.com/marcusolsson/tui-go
package main
import "github.com/marcusolsson/tui-go"
func main() {
box := tui.NewVBox(
tui.NewLabel("tui-go"),
)
ui := tui.New(box)
ui.SetKeybinding("Esc", func() { ui.Quit() })
if err := ui.Run(); err != nil {
panic(err)
}
}
If you want to know what it is like to build terminal applications with tui-go, check out some of the examples.
Documentation is available at godoc.org.
If you're using tui-go for your application, please let me know what works well for you, and especially what doesn't (bug reports are greatly appreciated!).
Pull requests are very much welcome! Check out the current issues to find out how you can help. If you do find anything interesting, please assign yourself to that issue so that others know you're working on it. If you want to contribute a feature not currently not listed, please create a new issue with a description of what you want to do.
Please post any feature requests you might have. Smaller requests might end up being implemented rather quickly and larger ones will be considered for the road map.
tui-go is mainly influenced by Qt and offers a similar programming model that has been adapted to Go and the terminal.
For an overview of the alternatives for writing terminal user interfaces, check out this article by AppliedGo.
tui-go is released under the MIT License.