Expand description
Integrates with the Immich API, handles connectivity failover, and provides album/cache helpers.
The client probes both an internal (LAN) and external (WAN) URL and
locks onto whichever responds first. Submodules split the API surface
by domain: albums, library, search, upload, and errors.
All HTTP requests share a single reqwest::Client connection pool.
ModulesΒ§
- albums π
- Album management: list, create, cache, and add assets to albums.
- errors π
- HTTP and network error classification for user-facing diagnostics.
- library π
- Library browsing: fetch albums, thumbnails, asset details, download originals, delete.
- search π
- Search and explore: smart search, OCR, metadata filters, people, places, server stats.
- suggestions π
- Search suggestion autocomplete from the Immich server.
- upload π
- Asset upload flow including duplicate detection, checksum computation, and retry logic.
- upload_
helpers π - Upload-related helper functions: MIME detection, timezone fixup, file timestamps.
StructsΒ§
- Album
Summary π - Simplified album summary response from Immich.
- Album
User - A user entry within an albumβs user list.
- Album
User Info - Minimal user identity nested inside an
AlbumUser. - ApiClient
Settings π - In-memory API client connection URLs and configuration settings.
- ApiIssue
- Represents an actionable API or connection issue encountered during operations.
- Asset
Details - Asset details metadata payload.
- Asset
With πExif - Container matching assets returned alongside their EXIF metadata.
- Exif
Info - Full EXIF metadata schema properties returned by Immich.
- Exif
Search πAssets - Asset items list returned inside an EXIF search response.
- Exif
Search πResponse - Search results response wrapper for EXIF queries.
- Explore
Item - Discovered item in an Immich explore page section.
- Explore
Section - Discovered category section on the Immich explore page (e.g. places or tags).
- Immich
ApiClient - Asynchronous Immich API client with failover and request serialization.
- Library
Album - Detailed Immich library album representation.
- Library
Asset - Detailed Immich library asset representation.
- Metadata
Search Filters - Structured filters passed down search operations.
- People
Response π - List wrapper of recognized people returned by Immich.
- Person
- A recognized person returned by Immichβs facial recognition.
- Place
Item - One city with a representative asset ID for thumbnail display. Places display category representation holding the representative thumbnail asset.
- Search
Asset πSection - Paginated asset list section within a search response.
- Search
Response π - Search response wrapper.
- Server
About - Immich server configuration and version details.
- Server
Statistics - Server-wide statistics (admin-only). Returned by
/api/server/statistics. - Server
Stats - Immich server asset count statistics.
- Usage
ByUser - Per-user usage row from
/api/server/statistics.
EnumsΒ§
- Sort
Order - Direction of sort results.
- Thumbnail
Size - Type of asset thumbnails requested.
FunctionsΒ§
- deserialize_
checksum_ πto_ hex - Immich returns asset checksums as base64-encoded SHA1, while Mimick computes and stores them as lowercase hex. Normalize on deserialization so every comparison site (album diff, deletion lookup, sync index) sees the same canonical form.
- normalize_
checksum_ to_ hex