[[bench]]
harness = false
name = "main"
path = "benches/main.rs"
[dependencies.bitflags]
version = "2.3"
[dependencies.cassowary]
version = "0.3"
[dependencies.compact_str]
version = "0.8.0"
[dependencies.crossterm]
optional = true
version = "0.28.1"
[dependencies.document-features]
optional = true
version = "0.2.7"
[dependencies.indoc]
version = "2"
[dependencies.instability]
version = "0.3.1"
[dependencies.itertools]
version = "0.13"
[dependencies.lru]
version = "0.12.0"
[dependencies.palette]
optional = true
version = "0.7.6"
[dependencies.paste]
version = "1.0.2"
[dependencies.serde]
features = ["derive"]
optional = true
version = "1"
[dependencies.strum]
features = ["derive"]
version = "0.26.3"
[dependencies.termwiz]
optional = true
version = "0.22.0"
[dependencies.time]
features = ["local-offset"]
optional = true
version = "0.3.11"
[dependencies.unicode-segmentation]
version = "1.10"
[dependencies.unicode-truncate]
version = "1"
[dependencies.unicode-width]
version = "=0.2.0"
[dev-dependencies.argh]
version = "0.1.12"
[dev-dependencies.color-eyre]
version = "0.6.2"
[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.5.1"
[dev-dependencies.crossterm]
features = ["event-stream"]
version = "0.28.1"
[dev-dependencies.fakeit]
version = "1.1"
[dev-dependencies.font8x8]
version = "0.3.1"
[dev-dependencies.futures]
version = "0.3.30"
[dev-dependencies.indoc]
version = "2"
[dev-dependencies.octocrab]
version = "0.41.0"
[dev-dependencies.pretty_assertions]
version = "1.4.0"
[dev-dependencies.rand]
version = "0.8.5"
[dev-dependencies.rand_chacha]
version = "0.3.1"
[dev-dependencies.rstest]
version = "0.23.0"
[dev-dependencies.serde_json]
version = "1.0.109"
[dev-dependencies.tokio]
features = ["rt", "macros", "time", "rt-multi-thread"]
version = "1.39.2"
[dev-dependencies.tracing]
version = "0.1.40"
[dev-dependencies.tracing-appender]
version = "0.2.3"
[dev-dependencies.tracing-subscriber]
features = ["env-filter"]
version = "0.3.18"
[[example]]
doc-scrape-examples = true
name = "async"
path = "examples/async.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "barchart"
path = "examples/barchart.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "barchart-grouped"
path = "examples/barchart-grouped.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "block"
path = "examples/block.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "calendar"
path = "examples/calendar.rs"
required-features = ["crossterm", "widget-calendar"]
[[example]]
doc-scrape-examples = true
name = "canvas"
path = "examples/canvas.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "chart"
path = "examples/chart.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = false
name = "colors"
path = "examples/colors.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "colors_rgb"
path = "examples/colors_rgb.rs"
required-features = ["crossterm", "palette"]
[[example]]
doc-scrape-examples = true
name = "constraint-explorer"
path = "examples/constraint-explorer.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = false
name = "constraints"
path = "examples/constraints.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "custom_widget"
path = "examples/custom_widget.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = false
name = "demo"
path = "examples/demo/main.rs"
[[example]]
doc-scrape-examples = true
name = "demo2"
path = "examples/demo2/main.rs"
required-features = ["crossterm", "palette", "widget-calendar"]
[[example]]
doc-scrape-examples = false
name = "docsrs"
path = "examples/docsrs.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "flex"
path = "examples/flex.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "gauge"
path = "examples/gauge.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "hello_world"
path = "examples/hello_world.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "hyperlink"
path = "examples/hyperlink.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "inline"
path = "examples/inline.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "layout"
path = "examples/layout.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "line_gauge"
path = "examples/line_gauge.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "list"
path = "examples/list.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = false
name = "minimal"
path = "examples/minimal.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = false
name = "modifiers"
path = "examples/modifiers.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "panic"
path = "examples/panic.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "paragraph"
path = "examples/paragraph.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "popup"
path = "examples/popup.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "ratatui-logo"
path = "examples/ratatui-logo.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "scrollbar"
path = "examples/scrollbar.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "sparkline"
path = "examples/sparkline.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "table"
path = "examples/table.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "tabs"
path = "examples/tabs.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "tracing"
path = "examples/tracing.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "user_input"
path = "examples/user_input.rs"
required-features = ["crossterm"]
[[example]]
doc-scrape-examples = true
name = "widget_impl"
path = "examples/widget_impl.rs"
required-features = ["crossterm", "unstable-widget-ref"]
[features]
all-widgets = ["widget-calendar"]
crossterm = ["dep:crossterm"]
default = ["crossterm", "underline-color"]
macros = []
palette = ["dep:palette"]
scrolling-regions = []
serde = ["dep:serde", "bitflags/serde", "compact_str/serde"]
termion = ["dep:termion"]
termwiz = ["dep:termwiz"]
underline-color = ["dep:crossterm"]
unstable = ["unstable-rendered-line-info", "unstable-widget-ref", "unstable-backend-writer"]
unstable-backend-writer = []
unstable-rendered-line-info = []
unstable-widget-ref = []
widget-calendar = ["dep:time"]
[lib]
bench = false
name = "ratatui"
path = "src/lib.rs"
[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"
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"
string_to_string = "warn"
unnecessary_self_imports = "warn"
use_self = "warn"
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "forbid"
[package]
authors = ["Florian Dehau <work@fdehau.com>", "The Ratatui Developers"]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
categories = ["command-line-interface"]
description = "A library that's all about cooking up terminal user interfaces"
documentation = "https://docs.rs/ratatui/latest/ratatui/"
edition = "2021"
exclude = ["assets/*", ".github", "Makefile.toml", "CONTRIBUTING.md", "*.log", "tags"]
homepage = "https://ratatui.rs"
keywords = ["tui", "terminal", "dashboard"]
license = "MIT"
name = "ratatui"
readme = "README.md"
repository = "https://github.com/ratatui/ratatui"
rust-version = "1.74.0"
version = "0.29.0"
[package.metadata.docs.rs]
all-features = true
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
rustdoc-args = ["--cfg", "docsrs"]
[profile.bench]
codegen-units = 1
lto = true
[target."cfg(not(windows))".dependencies.termion]
optional = true
version = "4.0.0"
[[test]]
name = "backend_termion"
path = "tests/backend_termion.rs"
[[test]]
name = "state_serde"
path = "tests/state_serde.rs"
required-features = ["serde"]
[[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"