Skip to main content

max / goingson

3.0 KB · 117 lines History Blame Raw
1 [package]
2 name = "goingson-desktop"
3 version = "0.4.2"
4 edition = "2024"
5
6 [[bin]]
7 name = "goingson-desktop"
8 path = "src/main.rs"
9
10 [lib]
11 name = "goingson_desktop"
12 path = "src/lib.rs"
13 crate-type = ["staticlib", "cdylib", "lib"]
14
15 [build-dependencies]
16 tauri-build = { workspace = true }
17
18 [dependencies]
19 goingson-core = { workspace = true }
20 goingson-db-sqlite = { workspace = true }
21 goingson-plugin-runtime = { workspace = true }
22 synckit-client = { path = "../../../MNW/shared/synckit-client" }
23
24 # Tauri
25 tauri = { workspace = true, features = ["image-png"] }
26 tauri-plugin-dialog = { workspace = true }
27
28 # Async runtime
29 tokio = { workspace = true }
30
31 # Database
32 sqlx = { workspace = true, features = ["sqlite"] }
33
34 # Serialization
35 serde = { workspace = true }
36 serde_json = { workspace = true }
37
38 # Utilities
39 chrono = { workspace = true }
40 chrono-tz = { workspace = true }
41 uuid = { workspace = true }
42
43 # Email
44 async-imap = { workspace = true }
45 tokio-native-tls = { workspace = true }
46 tokio-util = { workspace = true }
47 futures-util = { workspace = true }
48 mailparse = { workspace = true }
49 lettre = { workspace = true }
50
51 reqwest = { workspace = true }
52 thiserror = { workspace = true }
53
54 # OAuth2
55 base64 = { workspace = true }
56 rand = { workspace = true }
57 sha2 = { workspace = true }
58 async-trait = { workspace = true }
59
60 # Logging
61 tracing = { workspace = true }
62 tracing-subscriber = { workspace = true }
63
64 # iCalendar parsing (for .ics import)
65 ical = { workspace = true }
66
67 # Export/Backup
68 csv = { workspace = true }
69 icalendar = { workspace = true }
70 flate2 = { workspace = true }
71
72 # Theme loading
73 theme-common = { workspace = true }
74 toml = { workspace = true }
75 # Browser opening
76 open = { workspace = true }
77
78 # Markdown rendering + HTML sanitization
79 docengine = { workspace = true }
80
81 # Secure credential storage
82 keyring = { workspace = true }
83
84 # HTML email to readable markdown
85 pter = "0.1"
86
87 # === Desktop-only dependencies (not available on iOS/Android) ===
88
89 # Desktop-only: plugins that require desktop window management
90 [target.'cfg(not(any(target_os = "ios", target_os = "android")))'.dependencies]
91 tauri-plugin-shell = { workspace = true }
92 tauri-plugin-notification = { workspace = true }
93 tauri-plugin-window-state = { workspace = true }
94 tauri-plugin-updater = { workspace = true }
95 tauri-plugin-process = { workspace = true }
96 # File watching (for external DB changes)
97 notify = { workspace = true }
98 notify-debouncer-mini = { workspace = true }
99
100 # Desktop-only: tray icon support
101 [target.'cfg(not(any(target_os = "ios", target_os = "android")))'.dependencies.tauri]
102 workspace = true
103 features = ["image-png", "tray-icon"]
104
105 # Android: bundle SQLite (system SQLite not accessible via NDK)
106 # and vendor OpenSSL (native-tls deps need it for cross-compilation)
107 [target.'cfg(target_os = "android")'.dependencies]
108 libsqlite3-sys = { version = "0.30", features = ["bundled"] }
109 openssl = { version = "0.10", features = ["vendored"] }
110
111 [dev-dependencies]
112 tempfile = "3"
113
114 [features]
115 default = ["custom-protocol"]
116 custom-protocol = ["tauri/custom-protocol"]
117