[package] name = "goingson-desktop" version = "0.4.2" edition = "2024" [[bin]] name = "goingson-desktop" path = "src/main.rs" [lib] name = "goingson_desktop" path = "src/lib.rs" crate-type = ["staticlib", "cdylib", "lib"] [build-dependencies] tauri-build = { workspace = true } [dependencies] goingson-core = { workspace = true } goingson-db-sqlite = { workspace = true } goingson-plugin-runtime = { workspace = true } synckit-client = { path = "../../../MNW/shared/synckit-client" } # Tauri tauri = { workspace = true, features = ["image-png"] } tauri-plugin-dialog = { workspace = true } # Async runtime tokio = { workspace = true } # Database sqlx = { workspace = true, features = ["sqlite"] } # Serialization serde = { workspace = true } serde_json = { workspace = true } # Utilities chrono = { workspace = true } chrono-tz = { workspace = true } uuid = { workspace = true } # Email async-imap = { workspace = true } tokio-native-tls = { workspace = true } tokio-util = { workspace = true } futures-util = { workspace = true } mailparse = { workspace = true } lettre = { workspace = true } reqwest = { workspace = true } thiserror = { workspace = true } # OAuth2 base64 = { workspace = true } rand = { workspace = true } sha2 = { workspace = true } async-trait = { workspace = true } # Logging tracing = { workspace = true } tracing-subscriber = { workspace = true } # iCalendar parsing (for .ics import) ical = { workspace = true } # Export/Backup csv = { workspace = true } icalendar = { workspace = true } flate2 = { workspace = true } # Theme loading theme-common = { workspace = true } toml = { workspace = true } # Browser opening open = { workspace = true } # Markdown rendering + HTML sanitization docengine = { workspace = true } # Secure credential storage keyring = { workspace = true } # HTML email to readable markdown pter = "0.1" # === Desktop-only dependencies (not available on iOS/Android) === # Desktop-only: plugins that require desktop window management [target.'cfg(not(any(target_os = "ios", target_os = "android")))'.dependencies] tauri-plugin-shell = { workspace = true } tauri-plugin-notification = { workspace = true } tauri-plugin-window-state = { workspace = true } tauri-plugin-updater = { workspace = true } tauri-plugin-process = { workspace = true } # File watching (for external DB changes) notify = { workspace = true } notify-debouncer-mini = { workspace = true } # Desktop-only: tray icon support [target.'cfg(not(any(target_os = "ios", target_os = "android")))'.dependencies.tauri] workspace = true features = ["image-png", "tray-icon"] # Android: bundle SQLite (system SQLite not accessible via NDK) # and vendor OpenSSL (native-tls deps need it for cross-compilation) [target.'cfg(target_os = "android")'.dependencies] libsqlite3-sys = { version = "0.30", features = ["bundled"] } openssl = { version = "0.10", features = ["vendored"] } [dev-dependencies] tempfile = "3" [features] default = ["custom-protocol"] custom-protocol = ["tauri/custom-protocol"]