[package]
edition = "2024"
rust-version = "1.88"
name = "tuika"
version = "0.6.0"
authors = [
"Mykhailo Chalyi <mike@chaliy.name>",
"Everruns <support@everruns.com>",
]
build = false
exclude = [
"docs/demos/*.gif",
"docs/demos/*.png",
"docs/showcases/*.gif",
"examples/codex/*.gif",
"docs/styling/*.gif",
"docs/themes/*.gif",
"/.agents",
"/.claude",
"/.github",
"/knowledge",
"/scripts",
"/AGENTS.md",
"/CLAUDE.md",
"/CODE_OF_CONDUCT.md",
"/CONTRIBUTING.md",
"/SECURITY.md",
"/rust-toolchain.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The application framework for Rust terminal UIs — flexbox layout, overlays, focus, keymap, components, and safe ratatui interoperability."
homepage = "https://github.com/everruns/tuika"
readme = "README.md"
keywords = [
"tui",
"terminal",
"ratatui",
"framework",
"widgets",
]
categories = ["command-line-interface"]
license = "MIT"
repository = "https://github.com/everruns/tuika"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
async = [
"dep:tokio",
"dep:tokio-stream",
"crossterm/event-stream",
]
scrolling-regions = [
"ratatui-core/scrolling-regions",
"ratatui-crossterm/scrolling-regions",
]
[lib]
name = "tuika"
path = "src/lib.rs"
bench = false
[[example]]
name = "async_dashboard"
path = "examples/async_dashboard.rs"
required-features = ["async"]
[[example]]
name = "codex"
path = "examples/codex/main.rs"
[[example]]
name = "demo"
path = "examples/demo.rs"
[[example]]
name = "gallery"
path = "examples/gallery.rs"
[[example]]
name = "image"
path = "examples/image.rs"
[[example]]
name = "image_demo"
path = "examples/image_demo.rs"
[[example]]
name = "inherit"
path = "examples/inherit.rs"
[[example]]
name = "markdown"
path = "examples/markdown.rs"
[[example]]
name = "mouse"
path = "examples/mouse.rs"
[[example]]
name = "overlay"
path = "examples/overlay.rs"
[[example]]
name = "primitives"
path = "examples/primitives.rs"
[[example]]
name = "ratatui_dashboard"
path = "examples/ratatui_dashboard.rs"
[[example]]
name = "screenshot"
path = "examples/screenshot.rs"
[[example]]
name = "select"
path = "examples/select.rs"
[[example]]
name = "split_footer"
path = "examples/split_footer.rs"
[[example]]
name = "split_footer_demo"
path = "examples/split_footer_demo.rs"
[[example]]
name = "styling"
path = "examples/styling.rs"
[[test]]
name = "packaging"
path = "tests/packaging.rs"
[[test]]
name = "pty_palette"
path = "tests/pty_palette.rs"
[[test]]
name = "pty_smoke"
path = "tests/pty_smoke.rs"
[[test]]
name = "public_api"
path = "tests/public_api.rs"
[[test]]
name = "scoped_scene"
path = "tests/scoped_scene.rs"
[[bench]]
name = "markdown"
path = "benches/markdown.rs"
harness = false
[[bench]]
name = "markdown_iai"
path = "benches/markdown_iai.rs"
harness = false
[[bench]]
name = "scroll"
path = "benches/scroll.rs"
harness = false
[[bench]]
name = "scroll_iai"
path = "benches/scroll_iai.rs"
harness = false
[dependencies.crossterm]
version = "0.29"
[dependencies.pulldown-cmark]
version = "0.13"
default-features = false
[dependencies.ratatui-core]
version = "0.1"
features = [
"std",
"underline-color",
]
[dependencies.ratatui-crossterm]
version = "0.1"
[dependencies.textwrap]
version = "0.16"
[dependencies.tokio]
version = "1"
features = [
"time",
"macros",
]
optional = true
[dependencies.tokio-stream]
version = "0.1"
optional = true
[dependencies.unicode-segmentation]
version = "1"
[dependencies.unicode-width]
version = "0.2"
[dev-dependencies.criterion]
version = "0.8"
features = ["cargo_bench_support"]
default-features = false
[dev-dependencies.iai-callgrind]
version = "0.16.1"
[dev-dependencies.portable-pty]
version = "0.9.0"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.ratatui]
version = "0.30.2"
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"time",
"test-util",
]
[dev-dependencies.tokio-stream]
version = "0.1"
[dev-dependencies.vt100]
version = "0.16"