#ui-framework #tui #ratatui #tui-framework #framework

nightly ez-tui

A framework to create terminal user interfaces in Rust with Ratatui

3 releases

Uses new Rust 2024

0.0.3-alpha Jul 27, 2025
0.0.0-alpha.3 Jul 27, 2025
0.0.0-alpha.2 Jul 20, 2025
0.0.0-ALPHA Jul 17, 2025

#2290 in GUI

Download history 31/week @ 2025-10-02 12/week @ 2025-11-06 74/week @ 2025-11-13

123 downloads per month

Apache-2.0

195KB
5K SLoC

EZ TUI

ez-tui is a library for building terminal user interfaces (TUIs) in Rust written by a beginner for his own needs.

You probably should not use this for production app; if you do, or are just looking at the code, keep in mind I'm a beginner fully open to critics about my code or design choices, so feel free to reach out on matrix: @nindouja:matrix.org

History

I created some basic TUIs to learn rust, but I was copy/pasting boilerplate from one to the other everytime.

I tried tui-realm which is great but I got limited to achieve what I wanted (receiving events from external lib), it was maybe a skill issue but couldn't find a nice solution.

So now I'm building this to learn rust while being heavily inspired by tui-realm. As of now some of the code is still copied from tui-realm. I intend to adapt it to my needs but for the current POC it works great.

I doubt this lib will be really useful to anyone as it's probably really opiniotated; and maybe in a bad way as I'm a rust beginner and not that good at designing. But if it ends up not being just a learning experience and is actually useful, I will be glad to work towards making it a proper library and include suggestions.

Features

  • Extends the lib defaults with your own:
    • Cli arguments
    • Global state
    • Messages
    • Global hotkeys
  • Focus management
  • Event handling
  • Reusable components - Write your own or reuse the provided ones
  • Easy form creation
  • External events sources

Included components

  • State debugger
  • Log viewer
  • Frame/Tick indicators
  • Form inputs
    • Date and/or Time
    • Text
    • Password
    • Range
    • Number
    • Checkbox
    • Radio group

Usage

As the interface will probably change a lot I don't have proper doc yet. But I keep one full example that should make use of all core features.

Dependencies

~29–48MB
~554K SLoC