veeso/tui-realm
{ "createdAt": "2021-04-07T15:42:01Z", "defaultBranch": "main", "description": "๐ A ratatui framework to build stateful applications with a React/Elm inspired approach ", "fullName": "veeso/tui-realm", "homepage": "", "language": "Rust", "name": "tui-realm", "pushedAt": "2026-05-02T12:57:03Z", "stargazersCount": 958, "topics": [ "console", "crossterm", "gui", "ratatui", "rust", "stateful", "stateful-tui", "terminal", "terminal-app", "terminal-graphics", "tui", "tui-framework", "tui-realm" ], "updatedAt": "2026-06-04T04:57:53Z", "url": "https://github.com/veeso/tui-realm"}tui-realm
Section titled โtui-realmโ
~ A ratatui framework inspired by Elm and React ~
Get started ยท Standard Library ยท Documentation
- [tui-realm]!(#tui-realm)
- [About tui-realm ๐]!(#about-tui-realm-)
- [Features ๐]!(#features-)
- [Get Started]!(#get-started)
- [Changelogs]!(#changelogs)
About tui-realm ๐
Section titled โAbout tui-realm ๐โtui-realm is a framework for ratatui to simplify the implementation of terminal user interfaces adding the possibility to work with re-usable components with properties and states, as youโd do in React. But thatโs not all: the components communicate with the ui engine via a system based on Messages and Events, providing you with the possibility to implement update routines as happens in Elm. In addition, the components are organized inside the View, which manages mounting/umounting, focus and event forwarding for you.
And that also explains the reason of the name: Realm stands for React and Elm.
tui-realm also comes with a standard library of components, which can be added to your dependencies, that you may find very useful.
![Demo]!(crates/tuirealm/docs/images/demo.gif)
See tui-realm in action in either the [core examples]!(crates/tuirealm/examples/) or in the [stdlib examples]!(crates/tuirealm-stdlib/examples/).
Features ๐
Section titled โFeatures ๐โ- โจ๏ธ Event-driven
- โ๏ธ Based on React and Elm
- ๐ฒ Boilerplate code
- ๐ Quick-setup
- ๐ฏ Single focus and states management
- ๐ Easy to learn
- ๐ค Adaptable to any use case
Get Started
Section titled โGet StartedโThis is a monorepo of the following crates:
- [tuirealm]!(crates/tuirealm/): The core crate containing all basic functionality
- [tui-realm-stdlib]!(crates/tuirealm-stdlib/): The standard library, which provides convenience wrappers for standard ratatui widgets
- [tuirealm_derive]!(crates/tuirealm-derive/): A helper derive library to derive
Componentfor components which just pass those functions to a underlying component - [tui-realm-treeview]!(crates/tuirealm-treeview/): A Tree Component implementation
- [tui-realm-textarea]!(crates/tuirealm-textarea/): A Text Area Component implementation
Development
Section titled โDevelopmentโThis repo uses just as the task runner. All build, lint, format, and test checks should go through the just recipes โ they encode the exact flags used by CI.
just # list all recipesjust build_all # build the workspace with all featuresjust test_all # run all tests with all featuresjust check_code # rustfmt --check + clippy (CI-equivalent)just publish_all # publish all crates in dependency orderSee [Justfile]!(Justfile) and [just/]!(just/) for the full set of recipes.
Changelogs
Section titled โChangelogsโSee [CHANGELOG.md]!(CHANGELOG.md).