How fwlkhw/eyeris works
Eyeris is an image-collection manager: users open a collection, import images or folders, then browse images and edit ratings and tags. The Rust CLI and GUI provide collection-management workflows; the Python side adds dataframe-based filtering, analysis, and semantic search over image embeddings. The README documents collection storage, while sampled code shows GUI metadata edits going directly to SQLite. Several Rust subsystem implementations and the tagging modules were not sampled, so their internal connections are omitted rather than inferred.
Main entry points: src/main.rs Collection GUI · lib.rs GUI data actions · eda.py Image analysis · src/main.rs Import CLI
Components 19
User applications
- Collection GUI
crates/gui/src/main.rs - GUI data actions
crates/gui/src/lib.rs - Image item view
crates/gui/src/item.rs - Import CLI
crates/cli/src/main.rs
Collection management
- Python collection
src/collection.py - Rust collection
crates/collection/src/lib.rs - Image scanning
crates/fs/src/lib.rs - Collection index
crates/db/src/lib.rs
Search and analysis
- Embedding store
src/ss.py - Image and text embeddings
src/embed.py - Image filtering
src/filter.py - Image analysis
src/eda.py - Tagging models
src/tag
Image metadata and processing
- Image indexing
crates/index/src/lib.rs - Image hashing
crates/hash/src/lib.rs - Color extraction
crates/color/src/lib.rs - Thumbnail generation
crates/thumbnail/src/lib.rs - XMP metadata
crates/xmp/src/lib.rs
Other components
- User
Connections 11
- User → Collection GUI: uses
crates/gui/src/main.rs - User → Import CLI: runs import
crates/cli/src/main.rs - Collection GUI → Rust collection: opens collection
crates/gui/src/main.rs - Collection GUI → GUI data actions: calls actions
crates/gui/src/main.rs - GUI data actions → Image item view: loads item data
crates/gui/src/lib.rs - GUI data actions → Collection index: reads and updates
crates/gui/src/lib.rs - Import CLI → Rust collection: indexes imports
crates/cli/src/main.rs - Python collection → Embedding store: creates search store
src/collection.py - Embedding store → Image and text embeddings: encodes images and text
src/ss.py - Image analysis → Image filtering: uses color columns
src/eda.py - Image analysis → Python collection: uses collection type
src/eda.py