Skip to main content

Crate videre_core

Crate videre_core 

Source

Modules§

classify
Classifications table: one row per unique content hash (photo/screenshot/ document/meme/unknown), keyed to embeddings.hash. Zero-shot classification reuses embeddings videre embed already computed. See docs/superpowers/specs/2026-07-29-screenshot-document-classification-design.md.
db
disk
What videre is using on disk, and which part of it is what.
embeddings
Embeddings table: one row per unique content hash, keyed to file_hashes.hash.
embeddings_db
Per-model embedding databases: one SQLite file per (library, model) pair, attached to the main connection as emb.
face_cluster
face_db
face_match
Bounding-box geometry for matching XMP face regions to detected faces. Pure: no I/O, no database, so the matching rule is tested in isolation.
geocode
Forward geocoding: place name (e.g. “Berlin, Germany”) -> (lat, lon), via the free public Nominatim (OpenStreetMap) API, with a local cache so a repeated query never repeats the network call. See docs/superpowers/specs/2026-08-01-location-clustering-design.md.
heic
hf_cache
Where Hugging Face weights land locally, and whether they are already there.
home
import_location
Where an import’s source files live.
import_providers
Which import sources exist, and how to recognise them.
io_timeout
library_stats
Aggregate library statistics for dashboard-style callers. Plain queries over an open rusqlite::Connection, shared source of truth for the gallery’s stats tile, videre stats, and any other embedder. See docs/superpowers/specs/2026-07-31-dashboard-stats-backend-design.md (Pass A) for what is and isn’t in scope.
location
location_cluster
GPS coordinate clustering: groups nearby (lat, lon) points by haversine distance into named location clusters, persisted to location_clusters + file_hashes.location_cluster_id. See docs/superpowers/specs/2026-08-01-location-clustering-design.md.
marks
Per-photo marks: rating, pick, colour label, like. One row per photo, keyed by content hash so a mark follows a photo across duplicates and moves.
mime_probe
Identify a file’s real type from its leading bytes.
person
Two forms of a person’s name: one to identify them by, one to show.
person_search
pipeline_runs
Per-command pipeline run history and liveness, surfaced by videre stats and other dashboard-style callers. See docs/superpowers/specs/2026-07-31-dashboard-stats-pass-b-design.md for the full design, and in particular why track() below does not rely on Drop/RAII for the success/failure bookkeeping, only the lock’s release does, and even that is backstopped by the OS releasing flock on any process death.
progress
query
Composable search predicates.
selection
Shared vocabulary for saying which files a command should work on.
semaphore
tags
Free-form tags, stored many-to-many by content hash so they follow a photo across duplicates and moves, exactly like marks. A tag is one opaque string; a /-separated path is stored verbatim with no hierarchy semantics (that is a deferred follow-up). Mirrors the shape of videre_core::marks.
thumb_cache
vectors
f32 <-> f16 BLOB conversion and L2 normalization for stored embeddings. Storage format: little-endian f16, 2 bytes per dimension.
video_meta
Date, location, dimensions, duration and codec from a QuickTime/MP4 container, without decoding anything.
video_probe
Detect whether a QuickTime/MP4 container has a video track, without decoding anything.
work
One place that decides whether there is work, and therefore whether a model is ever loaded.
xmp_gather
Collects the non-face owned labels for one photo hash (image dimensions, resolved location name, zero-shot category) that a sidecar export needs. Faces are gathered separately via face_db::labeled_faces_by_hash. Returns plain data; the binary assembles the XMP model, because that type is binary-only.