Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. Cursive

Cursive

MITRustcursive-core-v0.4.6

A TUI (Text User Interface) library for Rust to build rich terminal applications.

GitHubGitHub
4.8k stars263 forks0 contributors

What is Cursive?

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.

Target Audience

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.

Value Proposition

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.

Overview

A Text User Interface library for the Rust programming language

Use Cases

Best For

  • Building interactive configuration tools similar to Linux's menuconfig or nmtui.
  • Creating terminal-based games like minesweeper, tetris, or puzzle games.
  • Developing real-time terminal applications such as chat clients, audio players, or system monitors.
  • Adding rich CLI interfaces with dialogs, buttons, menus, and text views to Rust programs.
  • Implementing terminal dashboards or data visualization tools with interactive components.
  • Extending terminal applications with third-party views like calendars, hex viewers, image renderers, or tabbed interfaces.

Not Ideal For

  • Applications that must run on terminals with minimal or no UTF-8 support, as Cursive's core functionality depends heavily on UTF-8 locales.
  • Projects requiring high-performance, low-latency updates for fast-paced real-time interfaces like stock tickers or action games, due to potential abstraction overhead.
  • Developers needing extensive control over rendering or preferring a minimalist, lower-level TUI library such as ratatui for finer-grained terminal manipulation.

Pros & Cons

Pros

Ergonomic API Design

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.

Cross-Platform Backend Support

Uses crossterm by default with other backends available, ensuring broad terminal compatibility including basic Linux TTYs, as highlighted in the README's compatibility section.

Rich Component Library

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.

Strong Documentation and Community

Offers tutorials, extensive examples, and a showcase of applications, indicating active development and support, which helps reduce the learning curve for new users.

Cons

UTF-8 and Internationalization Limitations

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.

Experimental Features and Terminal Incompatibilities

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.

Performance Overhead for Simple UIs

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.

Frequently Asked Questions

Quick Stats

Stars4,805
Forks263
Contributors0
Open Issues196
Last commit1 month ago
CreatedSince 2015

Tags

#ncurses#terminal#tui#ui-library#terminal-ui#cli#cross-platform#crossterm#rust#terminal-applications

Built With

c
crossterm
R
Rust

Included in

Rust56.6k
Auto-fetched 20 hours ago

Related Projects

ratatui-org/ratatuiratatui-org/ratatui

A Rust crate for cooking up terminal user interfaces (TUIs) 👨‍🍳🐀 https://ratatui.rs

Stars20,940
Forks680
Last commit1 day ago
clap-rsclap-rs

A full featured, fast Command Line Argument Parser for Rust

Stars16,458
Forks1,195
Last commit7 days ago
indicatifindicatif

A command line progress reporting library for Rust

Stars5,158
Forks277
Last commit5 days ago
TimonPost/crosstermTimonPost/crossterm

Cross platform terminal library rust

Stars4,085
Forks369
Last commit6 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub