[workspace] resolver = "2" members = ["ratatui", "ratatui-*", "xtask", "examples/apps/*"] default-members = [ "ratatui", "ratatui-core", "ratatui-crossterm", # this is not included as it doesn't compile on windows # "ratatui-termion", "ratatui-termwiz", "ratatui-widgets", "examples/apps/*", ] [workspace.package] authors = ["Florian Dehau ", "The Ratatui Developers"] documentation = "https://docs.rs/ratatui/latest/ratatui/" repository = "https://github.com/ratatui/ratatui" homepage = "https://ratatui.rs" keywords = ["tui", "terminal", "dashboard"] categories = ["command-line-interface"] readme = "README.md" license = "MIT" exclude = ["assets/*", ".github", "Makefile.toml", "CONTRIBUTING.md", "*.log", "tags"] edition = "2021" rust-version = "1.74.0" [workspace.dependencies] bitflags = "2.7.0" color-eyre = "0.6.3" crossterm = "0.28.1" document-features = "0.2.7" indoc = "2.0.5" instability = "0.3.7" itertools = "0.13.0" pretty_assertions = "1.4.1" ratatui = { path = "ratatui", version = "0.30.0-alpha.1" } ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.2" } ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.1" } ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.1" } ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.1" } ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.1" } rstest = "0.24.0" serde = { version = "1.0.217", features = ["derive"] } serde_json = "1.0.137" strum = { version = "0.26.3", features = ["derive"] } termwiz = { version = "0.22.0" } unicode-segmentation = "1.12.0" # See for information about why we pin unicode-width termion = "4.0.0" unicode-width = "=0.2.0" # Improve benchmark consistency [profile.bench] codegen-units = 1 lto = true [workspace.lints.rust] unsafe_code = "forbid" [workspace.lints.clippy] pedantic = { level = "warn", priority = -1 } cast_possible_truncation = "allow" cast_possible_wrap = "allow" cast_precision_loss = "allow" cast_sign_loss = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow" module_name_repetitions = "allow" must_use_candidate = "allow" # we often split up a module into multiple files with the main type in a file named after the # module, so we want to allow this pattern module_inception = "allow" # nursery or restricted as_underscore = "warn" 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" mixed_read_write_in_expression = "warn" mod_module_files = "warn" 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"