Bridge between Dioxus Core (reactive components) and Ratatui (terminal rendering). Architecture: retained TuiNode tree + immediate Ratatui render Dioxus VirtualDom → WriteMutations → TuiTree → Frame → Terminal Modules: tree.rs — retained node tree (Element, Text, Placeholder) renderer.rs — WriteMutations impl (14 methods) layout.rs — Dioxus attrs → Ratatui Constraint/Direction style.rs — attrs → Ratatui Style (colors, bold, italic) events.rs — crossterm quit detection render.rs — tree walker → Ratatui widget rendering lib.rs — launch() + event loop + terminal lifecycle Elements: div, p, span, h1-h3, hr Layout: vertical/horizontal split, percentage/length/fill constraints Styling: named colors, hex, bold, italic, underline, dim Events: keyboard quit (Ctrl+C, q) 453 lines. Zero governance/substrate dependencies. Apache 2.0 — pure community crate. Signed-off-by: Tyler King <tking@guildhouse.dev>
20 lines
685 B
TOML
20 lines
685 B
TOML
[package]
|
|
name = "dioxus-ratatui"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Ratatui renderer for Dioxus — build reactive terminal UIs with Dioxus components"
|
|
license = "Apache-2.0"
|
|
keywords = ["dioxus", "ratatui", "tui", "terminal"]
|
|
categories = ["gui", "command-line-interface"]
|
|
|
|
[dependencies]
|
|
dioxus-core = "0.6"
|
|
ratatui = { version = "0.29", default-features = false, features = ["crossterm"] }
|
|
crossterm = "0.28"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }
|
|
tracing = "0.1"
|
|
anyhow = "1"
|
|
|
|
[dev-dependencies]
|
|
dioxus = { version = "0.6", default-features = false, features = ["macro", "hooks", "signals", "html"] }
|
|
tracing-subscriber = "0.3"
|