[package]
name = "skim"
version = "4.4.0"
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"
rust-version = "1.91"
default-run = "sk"

[package.metadata.wix]
upgrade-guid = "6DDAED06-EBE2-41C4-94F5-CB03F2A4B92E"
path-guid = "05D1A327-19E0-4C82-B5EC-6B28E40C691B"
license = false
eula = false

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

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

[profile.release-debug]
inherits = "release"
debug = true
strip = false


[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"
clap = { version = "=4.6.0" , optional = true, features = ["cargo", "derive", "unstable-markdown"] }
clap_complete = { version = "=4.6.0", optional = true }
clap_mangen = { version = "=0.3.0", optional = true }
derive_builder = "=0.20.2"
env_logger = { version = "=0.11.10", optional = true, features = ["humantime"] }
indexmap = "=2.13.0"
log = "=0.4.29"
nix = { version = "=0.31.2", features = ["fs", "poll"] }
rand = "=0.10.0"

regex = "=1.12.3"
shell-quote = "=0.7.2"
shlex = { version = "=1.3.0", optional = true }
tokio = { version = "=1.50.0", features = ["macros", "net", "rt-multi-thread", "sync", "time", "tokio-macros"] }
which = "=8.0.2"
ratatui = "=0.30.0"
color-eyre = "=0.6.5"
ansi-to-tui = "=8.0.1"
futures = "=0.3.32"
tokio-util = "=0.7.18"
thiserror = "=2.0.18"
tempfile = "=3.27.0"
crossterm = { version = ">=0.0.0", features = ["event-stream", "use-dev-tty", "libc"] }
thread_local = "=1.1.9"
memchr = "=2.8.0"
clap_complete_nushell = "=4.6.0"
interprocess = { version = "=2.4.0", features = ["tokio"] }
serde = { version = "=1.0.228", features = ["derive"] }
ron = "=0.12.1"
frizbee = { version = "=0.8.3" }
roff = "=1.1.1"
unicode-display-width = "=0.3.0"
unicode-normalization = "=0.1.25"
derive_more = { version = "=2.1.1", features = ["debug", "eq"] }
portable-pty = "=0.9.0"
tui-term = "=0.3.3"
kanal = "=0.1.1"
gungraun = { version = "0.17.2", optional = true }
mimalloc = { version = "0.1.48", features = ["v3"] }

[features]
default = ["cli"]
# 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"]
# Enable gungraun (Valgrind-based) benchmarks
gungraun = ["dep:gungraun"]

[dev-dependencies]
criterion = { version = "0.8.2", features = ["async_tokio"] }
insta = "1.47"
serde_json = { version = "=1.0.149" }

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage, coverage_nightly)'] }

[[bench]]
name = "read_and_match"
harness = false

[[bench]]
name = "filter"
harness = false

[[bench]]
name = "partial"
harness = false

[[bench]]
name = "matcher_micro"
harness = false

[[bench]]
name = "gungraun"
harness = false
required-features = ["gungraun"]

[[bench]]
name = "cli"
harness = false
bench = false