[package]
edition = "2024"
rust-version = "1.88"
name = "superlighttui"
version = "0.23.0"
build = false
exclude = [
"examples/",
".github/",
"assets/",
"AUDIT-REPORT.md",
"CLAUDE.md",
"AGENTS.md",
".agents/",
".claude/",
"scripts/",
"benches/",
"tests/",
"deny.toml",
"_typos.toml",
"*.tape",
".gitignore",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Super Light TUI - A lightweight, ergonomic terminal UI library"
homepage = "https://github.com/subinium/SuperLightTUI"
documentation = "https://docs.rs/superlighttui"
readme = "README.md"
keywords = [
"tui",
"terminal",
"cli",
"ui",
"immediate-mode",
]
categories = ["command-line-interface"]
license = "MIT"
repository = "https://github.com/subinium/SuperLightTUI"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
async = [
"dep:tokio",
"crossterm",
]
bidi = ["dep:unicode-bidi"]
crossterm = [
"dep:crossterm",
"dep:signal-hook",
"dep:rustix",
"dep:crossterm_winapi",
]
default = [
"crossterm",
"bidi",
]
full = [
"crossterm",
"async",
"serde",
"theme-watch",
"image",
"qrcode",
"kitty-compress",
"bidi",
]
image = ["dep:image"]
kitty-compress = ["dep:flate2"]
pty-test = ["crossterm"]
qrcode = ["dep:qrcode"]
serde = [
"dep:serde",
"dep:toml",
]
syntax = [
"syntax-rust",
"syntax-python",
"syntax-javascript",
"syntax-typescript",
"syntax-go",
"syntax-bash",
"syntax-json",
"syntax-toml",
"syntax-c",
"syntax-cpp",
"syntax-java",
"syntax-ruby",
"syntax-css",
"syntax-html",
"syntax-yaml",
]
syntax-bash = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-bash",
]
syntax-c = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-c",
]
syntax-cpp = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-cpp",
]
syntax-css = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-css",
]
syntax-go = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-go",
]
syntax-html = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-html",
]
syntax-java = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-java",
]
syntax-javascript = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-javascript",
]
syntax-json = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-json",
]
syntax-python = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-python",
]
syntax-ruby = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-ruby",
]
syntax-rust = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-rust",
]
syntax-toml = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-toml-ng",
]
syntax-typescript = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-javascript",
"dep:tree-sitter-typescript",
]
syntax-yaml = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-yaml",
]
theme-watch = [
"serde",
"dep:notify",
]
[lib]
name = "slt"
path = "src/lib.rs"
[dependencies.compact_str]
version = "0.9.0"
default-features = false
[dependencies.crossterm]
version = "0.28"
features = ["bracketed-paste"]
optional = true
[dependencies.flate2]
version = "1"
optional = true
[dependencies.image]
version = "0.25"
features = [
"png",
"jpeg",
]
optional = true
default-features = false
[dependencies.notify]
version = "8.2"
optional = true
[dependencies.qrcode]
version = "0.14"
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.smallvec]
version = "1"
[dependencies.tokio]
version = "1"
features = [
"rt",
"sync",
"macros",
"time",
]
optional = true
[dependencies.toml]
version = "1.1"
optional = true
[dependencies.tree-sitter-bash]
version = "0.25"
optional = true
[dependencies.tree-sitter-c]
version = "0.24"
optional = true
[dependencies.tree-sitter-cpp]
version = "0.23"
optional = true
[dependencies.tree-sitter-css]
version = "0.25"
optional = true
[dependencies.tree-sitter-go]
version = "0.25"
optional = true
[dependencies.tree-sitter-highlight]
version = "0.26"
optional = true
[dependencies.tree-sitter-html]
version = "0.23"
optional = true
[dependencies.tree-sitter-java]
version = "0.23"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.25"
optional = true
[dependencies.tree-sitter-json]
version = "0.24"
optional = true
[dependencies.tree-sitter-python]
version = "0.25"
optional = true
[dependencies.tree-sitter-ruby]
version = "0.23"
optional = true
[dependencies.tree-sitter-rust]
version = "0.24"
optional = true
[dependencies.tree-sitter-toml-ng]
version = "0.7"
optional = true
[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true
[dependencies.tree-sitter-yaml]
version = "0.7"
optional = true
[dependencies.unicode-bidi]
version = "0.3"
optional = true
[dependencies.unicode-segmentation]
version = "1"
[dependencies.unicode-width]
version = "0.2"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.insta]
version = "1"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.serde_json]
version = "1"
[target."cfg(unix)".dependencies.rustix]
version = "1"
features = [
"fs",
"stdio",
]
optional = true
[target."cfg(unix)".dependencies.signal-hook]
version = "0.3"
optional = true
[target."cfg(unix)".dev-dependencies.rustix]
version = "1"
features = [
"pty",
"termios",
]
[target."cfg(windows)".dependencies.crossterm_winapi]
version = "0.9"
optional = true
[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1
[lints.rustdoc]
broken_intra_doc_links = "warn"
private_intra_doc_links = "warn"