# proton-drive-linux A Tauri v2 desktop application wrapping [Proton Drive](https://proton.me/drive)'s WebClients frontend for native Linux use. ## Tech Stack | Layer | Technology | |---|---| | Shell | Tauri v2 (Rust) | | Frontend | Proton WebClients — React monorepo (Drive, Account, Verify apps) | | Backend | Rust modules: live sync, sync DB, navigation, cookie management | | Database | SQLite via `rusqlite` (WAL mode, foreign keys, SHA-256 hashed IDs) | | Build | APK, AppImage, DEB, RPM, AUR, Flatpak, Snap — 18+ distribution targets | | CI/CD | GitHub Actions (primary) + GitLab CI (internal), with issue mirroring | ## Architecture The app consists of a Tauri shell with 6 Rust modules backing a WebView running Proton's WebClients: - **Live Sync** — Bidirectional: local `notify` file watcher + periodic remote polling (30s default), with 30s suppression TTL to prevent echo loops - **Sync Database** — SQLite persistence for sync metadata with SHA-256 hashed Proton IDs - **Navigation** — Three specific URL handlers for SSO redirects and CAPTCHA token extraction - **Cookie Bridge** — Merges WebKit native cookies with `reqwest` jar for consistent auth across restarts
graph LR
    MAIN[main.rs
AppState + Proxy] LS[live_sync.rs
Bidirectional Sync] SDB[sync_db.rs
SQLite] NAV[proton_navigation.rs
SSO Routing] WV_C[webview_cookies.rs
Cookie Bridge] MAIN --> LS MAIN --> SDB MAIN --> NAV MAIN --> WV_C LS --> SDB
## Key Documents - [Architecture](/protondrive-linux/architecture/) — Module map and data flow - [Auth Module](/protondrive-linux/auth-module/) — SRP authentication (not yet wired into main.rs) - [Live Sync Module](/protondrive-linux/live-sync-module/) — Bidirectional sync engine - [Sync DB Module](/protondrive-linux/sync-db-module/) — SQLite persistence with hashed IDs - [Navigation](/protondrive-linux/proton-navigation/) — SSO/CAPTCHA URL handlers - [WebView Integration](/protondrive-linux/webview-integration/) — Cookie bridge + storage - [Build System](/protondrive-linux/build-system/) — 18+ package targets - [CI Pipeline](/protondrive-linux/ci-pipeline/) — GitHub Actions + GitLab CI