Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

veeso/tui-realm

๐Ÿ‘‘ A ratatui framework to build stateful applications with a React/Elm inspired approach

veeso/tui-realm.json
{
"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"
}

logo

~ A ratatui framework inspired by Elm and React ~

Get started ยท Standard Library ยท Documentation

License-MIT Repo stars Downloads counter Latest version Ko-fi

CI Coveralls Docs


  • [tui-realm]!(#tui-realm)
    • [About tui-realm ๐Ÿ‘‘]!(#about-tui-realm-)
    • [Features ๐ŸŽ]!(#features-)
    • [Get Started]!(#get-started)
    • [Changelogs]!(#changelogs)

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/).

  • โŒจ๏ธ Event-driven
  • โš›๏ธ Based on React and Elm
  • ๐Ÿฒ Boilerplate code
  • ๐Ÿš€ Quick-setup
  • ๐ŸŽฏ Single focus and states management
  • ๐Ÿ™‚ Easy to learn
  • ๐Ÿค– Adaptable to any use case

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 Component for 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

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.

Terminal window
just # list all recipes
just build_all # build the workspace with all features
just test_all # run all tests with all features
just check_code # rustfmt --check + clippy (CI-equivalent)
just publish_all # publish all crates in dependency order

See [Justfile]!(Justfile) and [just/]!(just/) for the full set of recipes.

See [CHANGELOG.md]!(CHANGELOG.md).