# fdehau/tui-rs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/fdehau-tui-rs).**

10,875 stars · 484 forks · Rust · MIT · archived

## Links

- GitHub: https://github.com/fdehau/tui-rs
- awesome-repositories: https://awesome-repositories.com/repository/fdehau-tui-rs.md

## Description

tui-rs is a Rust framework for building rich terminal user interfaces and dashboards. It provides a terminal layout engine for dividing the screen into flexible rectangular regions and a widget library for rendering data in a terminal.

The project includes a cross-platform terminal backend abstraction layer to ensure consistent rendering and compatibility across different operating system terminal drivers.

The framework covers a wide range of UI components, including data visualization tools such as charts, progress gauges, and sparklines, as well as structural elements like data tables, item lists, and tabbed navigation. It also provides systems for stateful widget management, cursor position control, and text styling.

## Tags

### User Interface & Experience

- [Terminal User Interfaces](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces.md) — Provides a comprehensive framework for building, styling, and managing interactive text-based user interfaces.
- [Rectangle-Based Layouts](https://awesome-repositories.com/f/user-interface-experience/constraint-layout-engines/rectangle-based-layouts.md) — Offers a layout system that partitions the terminal screen into nested rectangular areas using constraints.
- [Terminal Layout Engines](https://awesome-repositories.com/f/user-interface-experience/terminal-layout-engines.md) — Implements a system for composing responsive terminal interfaces using hierarchical widgets and layout rules.
- [Terminal-Agnostic Renderers](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/rendering-output-engines/terminal-agnostic-renderers.md) — Provides a rendering engine that abstracts terminal output for consistent visual layouts across different environments.
- [UI Styling](https://awesome-repositories.com/f/user-interface-experience/ui-styling.md) — Provides a styling system for applying colors and modifiers to text spans and UI widgets. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))
- [Terminal Cursor Controllers](https://awesome-repositories.com/f/user-interface-experience/cursor-management/pane-cursor-controllers/terminal-cursor-controllers.md) — Allows programmatic control over the terminal cursor position and visibility during render cycles. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))
- [Multi-line Item Renderers](https://awesome-repositories.com/f/user-interface-experience/data-display-components/list-components/multi-line-item-renderers.md) — Provides a widget for rendering collections of items that can span multiple lines with custom styling. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))
- [Progress Bars](https://awesome-repositories.com/f/user-interface-experience/progress-bars.md) — Includes linear indicators and unicode blocks to visualize task completion and percentages. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))
- [Sparkline Charts](https://awesome-repositories.com/f/user-interface-experience/sparkline-charts.md) — Implements compact line charts using vertical bars to visualize data trends in limited terminal spaces. ([source](https://github.com/fdehau/tui-rs/blob/v0.19.0/examples/sparkline.rs))
- [Tabbed Navigation](https://awesome-repositories.com/f/user-interface-experience/tabbed-navigation.md) — Includes components for organizing terminal content into selectable, switchable tabbed views. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))
- [Terminal Data Visualizations](https://awesome-repositories.com/f/user-interface-experience/terminal-data-visualizations.md) — Implements systems for rendering complex data and system states using text-based graphics in a terminal.
- [Text Display Widgets](https://awesome-repositories.com/f/user-interface-experience/text-display-widgets.md) — Provides a text widget supporting word wrapping, alignment, and scrolling for long-form content. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))
- [Text Styling Utilities](https://awesome-repositories.com/f/user-interface-experience/text-styling-utilities.md) — Provides utilities for applying colors and font modifiers like bold or italic to text segments.
- [UI State Preservation](https://awesome-repositories.com/f/user-interface-experience/ui-state-preservation.md) — Enables preservation of internal widget state across render cycles to maintain user selections and interactions. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))

### Development Tools & Productivity

- [Screen Buffers](https://awesome-repositories.com/f/development-tools-productivity/memory-buffering-utilities/memory-buffering-pipelines/direct-buffer-processing/formatted-output-buffers/screen-buffers.md) — Implements internal screen buffers to manage terminal content and reduce flickering during updates.
- [Terminal Abstractions](https://awesome-repositories.com/f/development-tools-productivity/terminal-abstractions.md) — Includes an abstraction layer that normalizes terminal capabilities and rendering across different operating systems. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))
- [Terminal Widget Toolkits](https://awesome-repositories.com/f/development-tools-productivity/terminal-widget-toolkits.md) — Ships a comprehensive library of pre-built controls for constructing keyboard-navigable terminal applications.
- [Terminal Screen Partitioning](https://awesome-repositories.com/f/development-tools-productivity/window-managers/split-screen-layouts/terminal-screen-partitioning.md) — Implements a layout engine to divide the terminal screen into flexible regions using length, percentage, or ratio constraints. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))

### Programming Languages & Runtimes

- [Rust-Implemented Tools](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/interoperability/rust-implemented-tools.md) — Provides a high-performance framework implemented in Rust for building sophisticated terminal-based tools.
- [Rust TUI Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/rust-tui-frameworks.md) — Provides a complete library for building rich terminal user interfaces and dashboards in Rust.

### Data & Databases

- [XY Charts](https://awesome-repositories.com/f/data-databases/data-analysis-visualization/visualization-frameworks-libraries/chart-components-utilities/xy-charts.md) — Provides components to plot numeric datasets as line or scatter graphs with axes for data analysis. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))
- [Data Table Components](https://awesome-repositories.com/f/data-databases/data-table-components.md) — Provides widgets for displaying structured information in grids with headers and multi-line rows. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))

### Game Development

- [Terminal 2D Graphics](https://awesome-repositories.com/f/game-development/game-engines-frameworks/2d-engines/2d-graphics-frameworks/terminal-2d-graphics.md) — Provides a capability to render custom shapes and markers on a 2D plane within terminal bounds. ([source](https://github.com/fdehau/tui-rs/blob/master/CHANGELOG.md))

### Graphics & Multimedia

- [Terminal Canvas Drawing](https://awesome-repositories.com/f/graphics-multimedia/coordinate-based-drawing-apis/terminal-canvas-drawing.md) — Enables rendering of shapes and markers onto a two-dimensional terminal plane for precise visual representations.

### System Administration & Monitoring

- [Real-Time Monitoring Dashboards](https://awesome-repositories.com/f/system-administration-monitoring/real-time-monitoring-dashboards.md) — Provides the necessary widgets to build real-time monitoring dashboards for system and application metrics.

### Part of an Awesome List

- [TUI Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/tui-libraries.md) — Rust TUI library.
