Skip to main content

Crate fsearch

Crate fsearch 

Source
Expand description

§fsearch

A blazingly fast, cross-platform library for file search and duplicate detection.

§Quick start

use fsearch::searcher::{fast_find, SearchOptions};
use std::sync::{Arc, atomic::AtomicBool};

let opts = SearchOptions::builder("*.rs")
    .base_dir("./src")
    .max_depth(5)
    .case_insensitive(true)
    .build();

let interrupted = Arc::new(AtomicBool::new(false));
let results = fast_find(&opts, interrupted).unwrap();
for m in &results {
    println!("{}", m.path().display());
}
use fsearch::searcher::{fast_find, SearchOptions};
use std::sync::{Arc, atomic::AtomicBool};

let opts = SearchOptions::builder("TODO")
    .base_dir(".")
    .max_depth(10)
    .search_in_files(true)
    .include_patterns(vec!["*.rs".into(), "*.py".into()])
    .build();

let interrupted = Arc::new(AtomicBool::new(false));
let results = fast_find(&opts, interrupted).unwrap();

§Duplicate detection

use fsearch::duplicates::{find_duplicates, DuplicateOptions, DuplicateMode, HashAlgorithm};
use std::sync::{Arc, atomic::AtomicBool};

let opts = DuplicateOptions::builder(".")
    .max_depth(10)
    .mode(DuplicateMode::Content)
    .algorithm(HashAlgorithm::Sha256)
    .min_size(1024) // skip files smaller than 1 KiB
    .build();

let interrupted = Arc::new(AtomicBool::new(false));
let (groups, summary) = find_duplicates(&opts, interrupted).unwrap();
println!("Found {} duplicate 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.
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.