proton-drive-linux

A Tauri v2 desktop application wrapping Proton 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

ProtonDrive Linux — not affiliated with Proton AG. GitHub