[package]
name = "rnk"
version = "0.5.0"
edition = "2024"
rust-version = "1.85"
description = "A React-like declarative terminal UI framework for Rust, inspired by Ink"
license = "MIT"
repository = "https://github.com/majiayu000/rnk"
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"]
authors = ["majiayu000 <1835304752@qq.com>"]
exclude = ["examples/*", "docs/*", ".github/*"]

[lib]
name = "rnk"
path = "src/lib.rs"

[[bin]]
name = "rnk"
path = "src/main.rs"

[features]
default = []
testing = []  # Enable testing utilities in release builds

[dependencies]
# Layout engine
taffy = "0.7"

# Terminal operations
crossterm = "0.28"

# Unicode width calculation
unicode-width = "0.2"
unicode-segmentation = "1.12"

# Text wrapping
textwrap = "0.16"

# Logging
log = "0.4"

# Error handling
thiserror = "2.0"

# Signal handling
ctrlc = { version = "3.4", features = ["termination"] }

[dev-dependencies]
env_logger = "0.11"
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", features = ["json"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
proptest = "1.4"  # Property-based testing

[[example]]
name = "hello"
path = "examples/hello.rs"

[[example]]
name = "counter"
path = "examples/counter.rs"

[[example]]
name = "glm_chat"
path = "examples/glm_chat.rs"
