mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2025-12-11 20:15:30 +01:00
GPUI Photo Grid
High-performance photo grid viewer for Spacedrive built with GPUI.
Features
- GPU-accelerated rendering with GPUI
- Grid layout with configurable columns and thumbnail size
- Direct connection to Spacedrive daemon
- Loads up to 1000 media files per directory
- Smart thumbnail variant selection
Building
cargo build --release
Running
Make sure Spacedrive daemon is running, then:
export SD_LIBRARY_ID="your-library-uuid"
export SD_SOCKET_PATH="$HOME/.spacedrive/daemon.sock" # optional
export SD_HTTP_URL="http://127.0.0.1:54321" # optional
export SD_INITIAL_PATH="/" # optional
cargo run
Helper Script
Use the included script to automatically find your library and run:
./run.sh
Environment Variables
SD_LIBRARY_ID(required) - Your Spacedrive library UUIDSD_SOCKET_PATH(optional) - Path to daemon socket (default:~/.spacedrive/daemon.sock)SD_HTTP_URL(optional) - HTTP server URL (default:http://127.0.0.1:54321)SD_INITIAL_PATH(optional) - Initial directory path (default:/)
Architecture
- Uses
sd-clientcrate to communicate with Spacedrive daemon - Queries files via Unix socket
- Loads thumbnails via HTTP from sidecar server
- GPUI handles image loading, caching, and GPU rendering
Performance
Current implementation:
- Loads 1000 files at a time
- Renders all visible thumbnails
- Uses GPUI's built-in image caching
Future optimizations:
- Virtual scrolling (only render visible rows)
- Texture streaming with LRU cache
- Infinite scroll with pagination
- Batch image loading