[package] name = "skim" version = "5.2.0" authors = ["Loric ANDRE", "Zhang Jinzhou "] 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" [lib] name = "skim" path = "src/lib.rs" [[bin]] name = "sk" path = "src/bin/main.rs" required-features = ["cli"] [features] # Default is destined to the CLI, not to library usage. default = ["cli", "frizbee", "image", "listen"] # Everything needed to use skim as a cli (argument parsing, shell integrations...). This should not be needed for most libraries. cli = ["dep:clap", "dep:clap_complete", "dep:clap_complete_nushell", "dep:shlex", "dep:env_logger", "dep:clap_mangen"] # Include frizbee as a matching algorithm frizbee = ["dep:frizbee"] # Enable image previews (renders the preview argument as an image) image = ["dep:image", "dep:ratatui-image"] # Enable the IPC socket (--listen / --remote), driving skim from other processes listen = ["dep:interprocess", "dep:ron", "dep:serde"] # Enable gungraun (Valgrind-based) benchmarks gungraun = ["dep:gungraun"] [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 [lints.rust] missing_docs = "warn" unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage, coverage_nightly)'] } [lints.clippy] pedantic = { level = "warn", priority = -1 } incompatible_msrv = "warn" collapsible_match = "allow" default_trait_access = "allow" [dependencies] ansi-to-tui = "8.0.1" assert_enum_variants = "0.1.2" clap = { version = "4.6.1" , optional = true, features = ["cargo", "derive", "unstable-markdown"] } clap_complete = { version = "4.6.5", optional = true } clap_complete_nushell = { version = "4.6.0", optional = true } clap_mangen = { version = "0.3.0", optional = true } eyre = "0.6.12" # Crossterm's version is selected by ratatui crossterm = { version = ">=0.0.0", features = ["event-stream", "use-dev-tty", "libc"] } derive_builder = "0.20.2" derive_more = { version = "2.1.1", features = ["debug", "eq"] } env_logger = { version = "0.11.10", optional = true, features = ["humantime"] } frizbee = { version = "=0.11.0", optional = true } futures = "0.3.32" gungraun = { version = "0.19.1", optional = true } image = { version = "0.25.10", optional = true, default-features = false, features = ["png", "jpeg", "gif", "webp"] } indexmap = "2.13.1" interprocess = { version = "2.4.2", features = ["tokio"], optional = true } kanal = "0.1.1" log = "0.4.31" memchr = "2.8.1" mimalloc = { version = "0.1.48", features = ["v3"] } nix = { version = "0.31.3", features = ["fs", "poll"] } portable-pty = "0.9.0" ratatui = "0.30.0" ratatui-image = { version = "11.0.4", features = ["crossterm"], default-features = false, optional = true } regex = "1.12.3" roff = "1.1.1" ron = { version = "0.12.1", optional = true } serde = { version = "1.0.228", features = ["derive"], optional = true } shell-quote = "0.7.2" shlex = { version = "2.0.1", optional = true } tempfile = "3.27.0" thiserror = "2.0.18" thread_local = "1.1.9" tokio = { version = "1.52.3", features = ["macros", "net", "rt-multi-thread", "sync", "time", "tokio-macros"] } tokio-util = "0.7.18" tui-term = "0.3.4" unicode-display-width = "0.3.0" unicode-normalization = "0.1.25" which = "8.0.2" [dev-dependencies] criterion = { version = "0.8.2", features = ["async_tokio"] } gnuplot = "0.0.46" insta = "1.47" rand = "0.10.0" serde_json = { version = "=1.0.150" } serial_test = "=3.5.0" [[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 [package.metadata.wix] upgrade-guid = "6DDAED06-EBE2-41C4-94F5-CB03F2A4B92E" path-guid = "05D1A327-19E0-4C82-B5EC-6B28E40C691B" license = false eula = false