[package]
edition = "2024"
rust-version = "1.85"
name = "rnk"
version = "0.19.1"
authors = ["majiayu000 <1835304752@qq.com>"]
build = false
exclude = [
"docs/*",
".github/*",
".claude/*",
"video/*",
"Cargo.toml.orig",
"DESIGN_ISSUES.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A React-like declarative terminal UI framework for Rust, inspired by Ink and Bubbletea"
homepage = "https://github.com/majiayu000/rnk"
documentation = "https://docs.rs/rnk"
readme = "README.md"
keywords = [
"tui",
"terminal",
"ui",
"cli",
"react",
]
categories = [
"command-line-interface",
"gui",
]
license = "MIT"
repository = "https://github.com/majiayu000/rnk"
[features]
default = []
http = ["dep:reqwest"]
testing = []
[lib]
name = "rnk"
path = "src/lib.rs"
[[bin]]
name = "rnk"
path = "src/main.rs"
[[example]]
name = "adaptive_colors_demo"
path = "examples/adaptive_colors_demo.rs"
[[example]]
name = "aria"
path = "examples/aria.rs"
[[example]]
name = "borders"
path = "examples/borders.rs"
[[example]]
name = "box_backgrounds"
path = "examples/box_backgrounds.rs"
[[example]]
name = "chat"
path = "examples/chat.rs"
[[example]]
name = "claude_inline_input_box"
path = "examples/claude_inline_input_box.rs"
[[example]]
name = "claude_input_box"
path = "examples/claude_input_box.rs"
[[example]]
name = "confirm_demo"
path = "examples/confirm_demo.rs"
[[example]]
name = "counter"
path = "examples/counter.rs"
[[example]]
name = "crlf_test"
path = "examples/crlf_test.rs"
[[example]]
name = "cross_thread"
path = "examples/cross_thread.rs"
[[example]]
name = "cursor_demo"
path = "examples/cursor_demo.rs"
[[example]]
name = "debug"
path = "examples/debug.rs"
[[example]]
name = "exact_app_test"
path = "examples/exact_app_test.rs"
[[example]]
name = "file_picker_demo"
path = "examples/file_picker_demo.rs"
[[example]]
name = "fixed_bottom_demo"
path = "examples/fixed_bottom_demo.rs"
[[example]]
name = "fullscreen_test"
path = "examples/fullscreen_test.rs"
[[example]]
name = "glm_chat"
path = "examples/glm_chat.rs"
[[example]]
name = "gradient_demo"
path = "examples/gradient_demo.rs"
[[example]]
name = "hello"
path = "examples/hello.rs"
[[example]]
name = "help_demo"
path = "examples/help_demo.rs"
[[example]]
name = "hyperlink_demo"
path = "examples/hyperlink_demo.rs"
[[example]]
name = "incremental_rendering"
path = "examples/incremental_rendering.rs"
[[example]]
name = "inline_mode"
path = "examples/inline_mode.rs"
[[example]]
name = "interactive_demo"
path = "examples/interactive_demo.rs"
[[example]]
name = "jest"
path = "examples/jest.rs"
[[example]]
name = "justify_content"
path = "examples/justify_content.rs"
[[example]]
name = "keys_demo"
path = "examples/keys_demo.rs"
[[example]]
name = "layout_demo"
path = "examples/layout_demo.rs"
[[example]]
name = "macros_demo"
path = "examples/macros_demo.rs"
[[example]]
name = "message_demo"
path = "examples/message_demo.rs"
[[example]]
name = "mouse_demo"
path = "examples/mouse_demo.rs"
[[example]]
name = "multi_select_demo"
path = "examples/multi_select_demo.rs"
[[example]]
name = "notification_demo"
path = "examples/notification_demo.rs"
[[example]]
name = "paginator_demo"
path = "examples/paginator_demo.rs"
[[example]]
name = "paste_demo"
path = "examples/paste_demo.rs"
[[example]]
name = "println_element"
path = "examples/println_element.rs"
[[example]]
name = "render_api_demo"
path = "examples/render_api_demo.rs"
[[example]]
name = "rich_text"
path = "examples/rich_text.rs"
[[example]]
name = "rnk_chat"
path = "examples/rnk_chat.rs"
[[example]]
name = "rnk_git"
path = "examples/rnk_git.rs"
[[example]]
name = "rnk_top"
path = "examples/rnk_top.rs"
[[example]]
name = "sage_exact"
path = "examples/sage_exact.rs"
[[example]]
name = "select_demo"
path = "examples/select_demo.rs"
[[example]]
name = "select_input"
path = "examples/select_input.rs"
[[example]]
name = "simple_test"
path = "examples/simple_test.rs"
[[example]]
name = "spring_demo"
path = "examples/spring_demo.rs"
[[example]]
name = "static_demo"
path = "examples/static_demo.rs"
[[example]]
name = "static_example"
path = "examples/static_example.rs"
[[example]]
name = "streaming_demo"
path = "examples/streaming_demo.rs"
[[example]]
name = "subprocess_output"
path = "examples/subprocess_output.rs"
[[example]]
name = "table"
path = "examples/table.rs"
[[example]]
name = "terminal_resize"
path = "examples/terminal_resize.rs"
[[example]]
name = "terminal_test"
path = "examples/terminal_test.rs"
[[example]]
name = "textarea_demo"
path = "examples/textarea_demo.rs"
[[example]]
name = "theme_demo"
path = "examples/theme_demo.rs"
[[example]]
name = "timer_demo"
path = "examples/timer_demo.rs"
[[example]]
name = "todo"
path = "examples/todo.rs"
[[example]]
name = "todo_app"
path = "examples/todo_app.rs"
[[example]]
name = "tree_demo"
path = "examples/tree_demo.rs"
[[example]]
name = "typed_cmd_demo"
path = "examples/typed_cmd_demo.rs"
[[example]]
name = "use_focus"
path = "examples/use_focus.rs"
[[example]]
name = "use_focus_with_id"
path = "examples/use_focus_with_id.rs"
[[example]]
name = "use_input"
path = "examples/use_input.rs"
[[example]]
name = "use_stdio"
path = "examples/use_stdio.rs"
[[example]]
name = "viewport_demo"
path = "examples/viewport_demo.rs"
[[test]]
name = "cmd_integration_test"
path = "tests/cmd_integration_test.rs"
[[test]]
name = "hook_integration_test"
path = "tests/hook_integration_test.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "layout_alignment_test"
path = "tests/layout_alignment_test.rs"
[[test]]
name = "property_tests"
path = "tests/property_tests.rs"
[[test]]
name = "terminal_mode_test"
path = "tests/terminal_mode_test.rs"
[[test]]
name = "virtual_screen_diff_test"
path = "tests/virtual_screen_diff_test.rs"
[[bench]]
name = "hooks"
path = "benches/hooks.rs"
harness = false
[[bench]]
name = "layout"
path = "benches/layout.rs"
harness = false
[[bench]]
name = "render"
path = "benches/render.rs"
harness = false
[[bench]]
name = "unicode"
path = "benches/unicode.rs"
harness = false
[dependencies.crossterm]
version = "0.28"
[dependencies.ctrlc]
version = "3.4"
features = ["termination"]
[dependencies.dirs-next]
version = "2.0"
[dependencies.log]
version = "0.4"
[dependencies.reqwest]
version = "0.12"
features = ["json"]
optional = true
[dependencies.taffy]
version = "0.7"
[dependencies.textwrap]
version = "0.16"
[dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"sync",
"time",
"macros",
"fs",
"process",
]
[dependencies.unicode-segmentation]
version = "1.12"
[dependencies.unicode-width]
version = "0.2"
[dev-dependencies.divan]
version = "0.1"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.proptest]
version = "1.4"
[dev-dependencies.reqwest]
version = "0.12"
features = ["json"]
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[target."cfg(unix)".dependencies.libc]
version = "0.2"