Expand description
§fsearch
A blazingly fast, cross-platform library for file search and duplicate detection, supporting multiple root directories.
§File search — single directory
use fsearch::searcher::{fast_find, SearchOptions};
use std::sync::{Arc, atomic::AtomicBool};
let opts = SearchOptions::builder("*.rs")
.base_dir("./src")
.max_depth(5)
.build();
let results = fast_find(&opts, Arc::new(AtomicBool::new(false))).unwrap();
for m in &results { println!("{}", m.path().display()); }§File search — multiple directories
use fsearch::searcher::{fast_find, SearchOptions};
use std::sync::{Arc, atomic::AtomicBool};
let opts = SearchOptions::builder("TODO")
.base_dirs(vec!["./src", "./tests", "./benches"])
.search_in_files(true)
.max_depth(10)
.build();
let results = fast_find(&opts, Arc::new(AtomicBool::new(false))).unwrap();§Duplicate detection — multiple directories
use fsearch::duplicates::{find_duplicates, DuplicateOptions, DuplicateMode};
use std::sync::{Arc, atomic::AtomicBool};
// Detect cross-directory duplicates (e.g. local Photos vs NAS backup)
let opts = DuplicateOptions::builder(vec!["~/Photos", "/mnt/nas/Photos"])
.max_depth(10)
.mode(DuplicateMode::Content)
.min_size(1024)
.build();
let (groups, summary) = find_duplicates(&opts, Arc::new(AtomicBool::new(false))).unwrap();
println!("{} groups, {} wasted", summary.groups_found, summary.wasted_human());Re-exports§
pub use config::Config;pub use duplicates::find_duplicates;pub use duplicates::DuplicateGroup;pub use duplicates::DuplicateMode;pub use duplicates::DuplicateOptions;pub use duplicates::DuplicateSummary;pub use duplicates::HashAlgorithm;pub use error::FsearchError;pub use error::FsearchResult;pub use searcher::fast_find;pub use searcher::recursive_find;pub use searcher::LineMatch;pub use searcher::SearchMatch;pub use searcher::SearchOptions;
Modules§
- binary
- colors
- config
- Configuration loading and persistence for
fsearch. - duplicates
- Duplicate-file detection across one or more directories.
- error
- Error types for the
fsearchlibrary. - output
- Coloured terminal output for both search and duplicate results.
- searcher
- Core file-search logic — exposed as a library API.