A minimalist Go package for building console user interfaces with overlapping views and keybindings.
GOCUI is a minimalist Go package for building console user interfaces (CUIs). It enables developers to create text-based applications with features like overlapping views, mouse support, and keybindings, solving the need for lightweight terminal-based interfaces.
Go developers building terminal applications, CLI tools, or text-based dashboards that require interactive user interfaces.
Developers choose GOCUI for its minimal API, concurrent-safe design, and comprehensive feature set including mouse support and colored text, making it a powerful yet simple alternative to more complex UI frameworks.
Minimalist Go package aimed at creating Console User Interfaces.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers a simple and straightforward interface, as highlighted in the philosophy, enabling rapid development of console UIs without unnecessary complexity.
The GUI can be modified at runtime safely, allowing for dynamic updates and interactions in multi-threaded Go applications without data races.
Enables creation of complex layouts with overlapping windows, similar to desktop applications, within the terminal, as shown in the screenshots with dynamic views.
Supports global and view-level keybindings along with mouse input, providing flexible user interaction for keyboard-driven and mouse-enabled interfaces.
Allows customization of text colors and includes a customizable edition mode with views implementing io.ReadWriter, enhancing visual distinction and user input management.
Building layouts requires setting exact coordinates for views, as seen in the example, which can be error-prone and tedious for dynamic or responsive interfaces.
Despite mentioning reusable widgets, there is no standard library of components like buttons or forms, forcing developers to build everything from scratch.
The README provides only basic examples, and advanced features like custom widgets or complex event handling require digging into source code or external resources.
Being text-based, it cannot render images or advanced graphical elements, restricting UI aesthetics to terminal-compatible text and colors.