A TUI (Text User Interface) library for Rust to build rich terminal applications.
Cursive is a TUI (Text User Interface) library for the Rust programming language that enables developers to build rich, interactive user interfaces for terminal-based applications. It provides a safe and ergonomic API to simplify creating complex terminal interfaces, from simple scripts to real-time applications and games. The library is designed to make terminal UI development accessible while handling a wide range of use cases.
Rust developers building terminal applications that require interactive user interfaces, such as configuration tools, real-time dashboards, games, or CLI tools with complex menus and dialogs.
Developers choose Cursive for its ease of use where simple apps are simple and complex apps remain manageable, its cross-platform backend support ensuring broad terminal compatibility, and its growing ecosystem of third-party view extensions. It prioritizes a safe and ergonomic API while maintaining Linux TTY compatibility for core features.
A Text User Interface library for the Rust programming language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The library simplifies UI creation, as shown in the hello world example where a dialog is set up with just a few lines of code, making it accessible for beginners and efficient for prototyping.
Uses crossterm by default with other backends available, ensuring broad terminal compatibility including basic Linux TTYs, as highlighted in the README's compatibility section.
Includes built-in views like dialogs and buttons, plus a growing ecosystem of third-party crates for extensions such as calendars, image rendering, and tabs, demonstrated in the examples and third-party lists.
Offers tutorials, extensive examples, and a showcase of applications, indicating active development and support, which helps reduce the learning curve for new users.
Cursive heavily relies on UTF-8 locales, with poor support for other encodings and right-to-left text handling still in early stages, limiting usability in某些 international contexts as admitted in the README.
User-defined colors are experimental, especially on raw Linux TTYs, and input handling can be unreliable due to terminal shortcuts not being transmitted, leading to potential bugs in diverse environments.
Compared to lighter alternatives like ratatui, the abstraction layers may introduce unnecessary latency for applications that only require basic terminal interactions, making it less ideal for performance-critical code.