Skip to main content

Crate fsearch

Crate fsearch 

Source
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 fsearch library.
output
Coloured terminal output for both search and duplicate results.
searcher
Core file-search logic — exposed as a library API.