[package]
edition = "2024"
name = "charmed-bubbletea"
version = "0.1.2"
authors = ["Jeffrey Emanuel"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A powerful TUI framework based on The Elm Architecture"
homepage = "https://github.com/Dicklesworthstone/charmed_rust"
documentation = "https://docs.rs/charmed-bubbletea"
readme = "README.md"
keywords = [
"tui",
"terminal",
"elm",
"framework",
"cli",
]
categories = [
"command-line-interface",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/Dicklesworthstone/charmed_rust"
resolver = "2"
[features]
async = [
"dep:tokio",
"dep:tokio-util",
"dep:futures",
]
default = ["macros"]
macros = ["dep:bubbletea-macros"]
thread-pool = ["dep:rayon"]
[lib]
name = "bubbletea"
path = "src/lib.rs"
[[example]]
name = "async_fetch"
path = "examples/async_fetch.rs"
required-features = ["async"]
[[example]]
name = "counter"
path = "examples/counter.rs"
[[example]]
name = "spinner"
path = "examples/spinner.rs"
[[example]]
name = "textinput"
path = "examples/textinput.rs"
[[test]]
name = "async_lifecycle"
path = "tests/async_lifecycle.rs"
[[test]]
name = "custom_io_input"
path = "tests/custom_io_input.rs"
[[test]]
name = "derive_model"
path = "tests/derive_model.rs"
[[test]]
name = "derive_model_e2e"
path = "tests/derive_model_e2e.rs"
[[test]]
name = "error_types"
path = "tests/error_types.rs"
[[test]]
name = "property_tests"
path = "tests/property_tests.rs"
[[test]]
name = "terminal_io_tests"
path = "tests/terminal_io_tests.rs"
[[bench]]
name = "async_vs_threads"
path = "benches/async_vs_threads.rs"
harness = false
required-features = ["async"]
[[bench]]
name = "bubbletea_benchmarks"
path = "benches/bubbletea_benchmarks.rs"
harness = false
[dependencies.bubbletea-macros]
version = "0.1.2"
optional = true
package = "charmed-bubbletea-macros"
[dependencies.crossterm]
version = "0.29"
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"sync",
"time",
"macros",
]
optional = true
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
optional = true
[dependencies.tracing]
version = "0.1"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.lipgloss]
version = "0.1.2"
package = "charmed-lipgloss"
[dev-dependencies.proptest]
version = "1.9.0"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"sync",
"time",
"macros",
]
[dev-dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "forbid"