Skip to main content

Crate immich_lib

Crate immich_lib 

Source
Expand description

Immich API library for duplicate management.

This library provides a typed client for interacting with the Immich REST API, with a focus on duplicate detection and metadata-aware duplicate selection.

§Example

use immich_lib::ImmichClient;

let client = ImmichClient::new("https://immich.example.com", "your-api-key")?;
let duplicates = client.get_duplicates().await?;

for group in duplicates {
    println!("Duplicate group {} has {} assets", group.duplicate_id, group.assets.len());
}

§Command-Line Tool

A companion binary immich-dupes is available for managing duplicates from the command line. Pre-built binaries and installation instructions are available in the GitHub repository.

Re-exports§

pub use client::ImmichClient;
pub use client::UploadResponse;
pub use error::ImmichError;
pub use error::Result;
pub use executor::Executor;
pub use letterbox::detect_aspect_ratio;
pub use letterbox::find_letterbox_pairs;
pub use letterbox::AspectRatio;
pub use letterbox::LetterboxAnalysis;
pub use letterbox::LetterboxPair;
pub use scoring::detect_conflicts;
pub use scoring::DuplicateAnalysis;
pub use scoring::MetadataConflict;
pub use scoring::MetadataScore;
pub use scoring::ScoredAsset;

Modules§

client
HTTP client wrapper for the Immich API.
error
Error types for the Immich API client.
executor
Execution pipeline for duplicate processing.
letterbox
Letterbox detection and pairing for iPhone 4:3/16:9 crop duplicates.
models
API response model types.
scoring
Metadata scoring and duplicate analysis.
testing
Test scenario detection for duplicate groups.