[package]
name = "skim"
version = "1.11.2"
authors = ["Loric ANDRE", "Zhang Jinzhou <lotabout@gmail.com>"]
description = "Fuzzy Finder in rust!"
documentation = "https://docs.rs/skim"
homepage = "https://github.com/skim-rs/skim"
repository = "https://github.com/skim-rs/skim"
readme = "README.md"
keywords = ["fuzzy", "menu", "util"]
license = "MIT"
edition = "2024"

[profile.release]
lto = true
codegen-units = 1
opt-level = 2
strip = true

# Kept for compatibility
[profile.dist]
inherits = "release"


[lib]
name = "skim"
path = "src/lib.rs"

[[bin]]
name = "sk"
path = "src/bin/main.rs"
required-features = ["cli"]

[dependencies]
assert_enum_variants = "0.1.2"
beef = "0.5.2"
clap = { version = "4.5.41" , optional = true, features = ["cargo", "derive", "unstable-markdown"] }
clap_complete = { version = "4.5.55", optional = true }
clap_mangen = { version = "0.2.29", optional = true }
defer-drop = "1.3.0"
derive_builder = "0.20.2"
env_logger = { version = "0.11.6", optional = true }
indexmap = "2.8.0"
log = "0.4.27"
nix = { version = "0.31.1", features = ["fs"] }
rand = "0.9.0"
rayon = "1.5.3"
regex = "1.6.0"
shell-quote = "0.7.2"
shlex = { version = "1.1.0", optional = true }
tokio = { version = "1.48.0", features = ["macros", "net", "rt-multi-thread", "sync", "time", "tokio-macros"] }
vte = "0.15.0"
which = "8.0.0"
ratatui = "0.30.0"
color-eyre = "0.6.5"
ansi-to-tui = "8.0.1"
futures = "0.3.31"
tokio-util = "0.7.17"
thiserror = "2.0.17"
tempfile = "3.20.0"
crossterm = { version = ">=0.0.0", features = ["event-stream", "use-dev-tty", "libc"] }
thread_local = "1.1.9"
termion = "4.0.6"
clap_complete_nushell = "4.5.10"
interprocess = { version = "2.2.3", features = ["tokio"] }
serde = { version = "1.0.228", features = ["derive"] }
ron = "0.12.0"
frizbee = { version = "0.6.0", optional = true }
roff = "0.2.2"
unicode-display-width = "0.3.0"
unicode-normalization = "0.1.25"
derive_more = { version = "2.1.1", features = ["debug", "eq"] }

[features]
default = ["cli", "nightly-frizbee"]
# Everyting needed to use skim as a cli (argument parsing, shell integrations...)
cli = ["dep:clap", "dep:clap_complete", "dep:shlex", "dep:env_logger", "dep:clap_mangen"]
# The frizbee matcher, which requires cargo nightly
nightly-frizbee = ["dep:frizbee"]
# Enable test utilities (e.g., Tui::new_for_test)
test-utils = []

[dev-dependencies]
insta = "1.43"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(feature, values("test-utils"))'] }
