Building a large-scale local photo manager in Rust (filesystem indexing + SQLite + Tauri)

54 points Hot-Butterscotch-396 9 comments

Hi all,

I’ve been building an open-source desktop photo manager in Rust, mainly as an experiment in filesystem indexing, thumbnail pipelines, and large-library performance.

Tech stack:

  • Rust (core logic)
  • Tauri (desktop runtime)
  • SQLite (metadata index via rusqlite)
  • Vue 3 frontend (separate UI layer)

The core problem I’m trying to solve:

Managing 100k–500k local photos across multiple external drives without cloud sync, while keeping indexing and browsing responsive.

Current challenges I’m exploring:

  • Balancing parallelism vs disk IO contention
  • Improving large-folder traversal speed on slow external drives
  • Memory usage under heavy thumbnail generation
  • Whether async brings real benefit here vs controlled thread pools

Repo (if you’re curious about the implementation details):
https://github.com/julyx10/lap

I’d really appreciate feedback on architecture, concurrency patterns, or SQLite usage from a Rust perspective.

Thanks!