[package]
edition = "2024"
rust-version = "1.88.0"
name = "ratatui"
version = "0.30.2"
authors = [
"Florian Dehau <work@fdehau.com>",
"The Ratatui Developers",
]
build = false
exclude = [
"*.log",
".github",
"CONTRIBUTING.md",
"Makefile.toml",
"assets/*",
"tags",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A library that's all about cooking up terminal user interfaces"
homepage = "https://ratatui.rs"
documentation = "https://docs.rs/ratatui/latest/ratatui/"
readme = "README.md"
keywords = [
"dashboard",
"terminal",
"tui",
]
categories = ["command-line-interface"]
license = "MIT"
repository = "https://github.com/ratatui/ratatui"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
cargo-args = [
"-Zunstable-options",
"-Zrustdoc-scrape-examples",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
all-widgets = ["widget-calendar"]
crossterm = [
"dep:ratatui-crossterm",
"std",
]
crossterm_0_28 = [
"crossterm",
"ratatui-crossterm/crossterm_0_28",
]
crossterm_0_29 = [
"crossterm",
"ratatui-crossterm/crossterm_0_29",
]
default = [
"all-widgets",
"crossterm",
"layout-cache",
"macros",
"underline-color",
]
layout-cache = ["ratatui-core/layout-cache"]
macros = ["dep:ratatui-macros"]
palette = [
"dep:palette",
"ratatui-core/palette",
]
portable-atomic = ["ratatui-core/portable-atomic"]
scrolling-regions = [
"ratatui-core/scrolling-regions",
"ratatui-crossterm?/scrolling-regions",
"ratatui-termina?/scrolling-regions",
"ratatui-termion?/scrolling-regions",
"ratatui-termwiz?/scrolling-regions",
]
serde = [
"dep:serde",
"ratatui-core/serde",
"ratatui-crossterm?/serde",
"ratatui-termina?/serde",
"ratatui-termion?/serde",
"ratatui-termwiz?/serde",
"ratatui-widgets/serde",
]
std = [
"ratatui-core/std",
"ratatui-widgets/std",
"serde?/std",
]
termina = [
"dep:ratatui-termina",
"std",
]
termion = [
"dep:ratatui-termion",
"std",
]
termwiz = [
"dep:ratatui-termwiz",
"std",
]
underline-color = [
"ratatui-core/underline-color",
"ratatui-crossterm?/underline-color",
"ratatui-termina?/underline-color",
"ratatui-termwiz?/underline-color",
]
unstable = [
"unstable-backend-writer",
"unstable-rendered-line-info",
"unstable-widget-ref",
]
unstable-backend-writer = [
"ratatui-crossterm?/unstable-backend-writer",
"ratatui-termina?/unstable-backend-writer",
"ratatui-termion?/unstable-backend-writer",
]
unstable-rendered-line-info = ["ratatui-widgets/unstable-rendered-line-info"]
unstable-widget-ref = []
widget-calendar = ["ratatui-widgets/calendar"]
[lib]
name = "ratatui"
path = "src/lib.rs"
bench = false
[[test]]
name = "backend_termion"
path = "tests/backend_termion.rs"
[[test]]
name = "state_serde"
path = "tests/state_serde.rs"
required-features = ["serde"]
[[test]]
name = "stateful_widget_ref_dyn"
path = "tests/stateful_widget_ref_dyn.rs"
[[test]]
name = "stylize"
path = "tests/stylize.rs"
[[test]]
name = "terminal"
path = "tests/terminal.rs"
[[test]]
name = "widgets_barchart"
path = "tests/widgets_barchart.rs"
[[test]]
name = "widgets_block"
path = "tests/widgets_block.rs"
[[test]]
name = "widgets_calendar"
path = "tests/widgets_calendar.rs"
[[test]]
name = "widgets_canvas"
path = "tests/widgets_canvas.rs"
[[test]]
name = "widgets_chart"
path = "tests/widgets_chart.rs"
[[test]]
name = "widgets_gauge"
path = "tests/widgets_gauge.rs"
[[test]]
name = "widgets_list"
path = "tests/widgets_list.rs"
[[test]]
name = "widgets_paragraph"
path = "tests/widgets_paragraph.rs"
[[test]]
name = "widgets_table"
path = "tests/widgets_table.rs"
[[test]]
name = "widgets_tabs"
path = "tests/widgets_tabs.rs"
[[bench]]
name = "main"
path = "benches/main.rs"
harness = false
[dependencies.document-features]
version = "0.2"
optional = true
[dependencies.instability]
version = "0.3"
[dependencies.palette]
version = "0.7.6"
features = ["libm"]
optional = true
default-features = false
[dependencies.ratatui-core]
version = "0.1.2"
[dependencies.ratatui-crossterm]
version = "0.1.2"
optional = true
[dependencies.ratatui-macros]
version = "0.7.2"
optional = true
[dependencies.ratatui-termina]
version = "0.1.0"
optional = true
[dependencies.ratatui-termwiz]
version = "0.1.2"
optional = true
[dependencies.ratatui-widgets]
version = "0.3.2"
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
default-features = false
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.crossterm]
version = "0.29"
features = ["event-stream"]
[dev-dependencies.fakeit]
version = "1"
[dev-dependencies.indoc]
version = "2"
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.rand]
version = "0.10"
[dev-dependencies.rstest]
version = "0.26"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.time]
version = "0.3.47"
features = ["local-offset"]
default-features = false
[target."cfg(not(windows))".dependencies.ratatui-termion]
version = "0.1.2"
optional = true
[lints.clippy]
as_underscore = "warn"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
deref_by_slicing = "warn"
else_if_without_else = "warn"
empty_line_after_doc_comments = "warn"
equatable_if_let = "warn"
fn_to_numeric_cast_any = "warn"
format_push_string = "warn"
implicit_clone = "warn"
map_err_ignore = "warn"
missing_const_for_fn = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
mixed_read_write_in_expression = "warn"
mod_module_files = "warn"
module_inception = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
needless_pass_by_ref_mut = "warn"
needless_raw_strings = "warn"
or_fun_call = "warn"
redundant_type_annotations = "warn"
rest_pat_in_fully_bound_structs = "warn"
string_lit_chars_any = "warn"
string_slice = "warn"
unnecessary_self_imports = "warn"
use_self = "warn"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "forbid"