[package]
name = "rust-filesearch"
version = "0.1.0"
edition = "2021"
authors = ["Jordan Bartlett <jordanb@doinggoodworks.com>"]
description = "Fast developer tools: fexplorer (file explorer) and px (project switcher with fuzzy search and frecency)"
license = "MIT OR Apache-2.0"
repository = "https://github.com/jbdgw/rust_fileexplorer"
readme = "README.md"
keywords = ["cli", "filesystem", "explorer", "fuzzy-search", "frecency"]
categories = ["command-line-utilities", "filesystem", "development-tools"]
documentation = "https://github.com/jbdgw/rust_fileexplorer/tree/main/docs"
homepage = "https://github.com/jbdgw/rust_fileexplorer"
[[bin]]
name = "fexplorer"
path = "src/main.rs"
[[bin]]
name = "px"
path = "src/bin/px.rs"
[dependencies]
clap = { version = "4.5", features = ["derive", "cargo", "wrap_help"] }
clap_complete = "4.5"
anyhow = "1.0"
thiserror = "1.0"
walkdir = "2.5"
ignore = "0.4"
chrono = { version = "0.4", features = ["serde"] }
filetime = "0.2"
time = { version = "0.3", optional = true }
humansize = "2.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
csv = "1.3"
nu-ansi-term = "0.50"
crossterm = { version = "0.28", features = ["event-stream"] }
indicatif = { version = "0.17", optional = true }
rayon = { version = "1.10", optional = true }
jwalk = { version = "0.8", optional = true }
notify = { version = "6.1", optional = true }
globset = "0.4"
regex = "1.11"
fuzzy-matcher = "0.3"
grep-searcher = { version = "0.1", optional = true }
grep-matcher = { version = "0.1", optional = true }
grep-regex = { version = "0.1", optional = true }
encoding_rs = { version = "0.8", optional = true }
blake3 = { version = "1.5", optional = true }
dashmap = { version = "5.5", optional = true }
ratatui = { version = "0.28", optional = true }
tui-input = { version = "0.10", optional = true }
git2 = { version = "0.19", optional = true }
toml = "0.8"
dirs = "5.0"
tera = { version = "1.20", optional = true }
pulldown-cmark = { version = "0.12", optional = true }
rusqlite = { version = "0.32", features = ["bundled"], optional = true }
libloading = { version = "0.8", optional = true }
wasmtime = { version = "25", optional = true }
[dev-dependencies]
assert_cmd = "2.0"
predicates = "3.1"
tempfile = "3.13"
serial_test = "3.2"
[features]
default = ["parallel", "templates", "grep", "git"]
parallel = ["rayon", "jwalk"]
watch = ["notify"]
progress = ["indicatif"]
grep = ["grep-searcher", "grep-matcher", "grep-regex", "encoding_rs"]
dedup = ["blake3", "dashmap"]
tui = ["ratatui", "tui-input"]
git = ["git2"]
templates = ["tera", "pulldown-cmark"]
trends = ["rusqlite", "time"]
plugins = ["libloading"]
plugins-wasm = ["wasmtime"]
all = ["parallel", "watch", "progress", "grep", "dedup", "tui", "git", "templates", "trends", "plugins"]
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true
[profile.dev]
opt-level = 0
[profile.test]
opt-level = 1