[package] name = "tutabridge-core" version = "0.1.0" edition = "2021" rust-version = "1.84.0" license = "GPL-3.0-or-later" [dependencies] tuta-sdk = { path = "../../tuta-repo/tuta-sdk/rust/sdk", features = ["net"] } tokio = { version = "1.43", features = ["full"] } async-trait = "0.1" log = "0.4" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.8" tokio-rustls = { version = "0.26", features = ["ring"] } rustls-pemfile = "2" rcgen = "0.13" crypto-primitives = { path = "../../tuta-repo/tuta-sdk/rust/crypto-primitives" } rand = "0.8" thiserror = "2.0" base64 = "0.22" dirs = "6" anyhow = "1" rand_core = "0.6" # Vendor OpenSSL for SQLCipher so the build needs no system OpenSSL — works # identically on macOS / Linux / Windows (Windows has none) and keeps the AUR # package self-contained. rusqlite = { version = "0.32", features = ["bundled-sqlcipher-vendored-openssl"] } hex = "0.4" # OS keychain backend — one per platform so the CLI builds (and packages, # e.g. on the AUR) on Linux/Windows, not just macOS. Linux uses the # Secret Service (gnome-keyring / KWallet) with pure-Rust crypto so there's # no OpenSSL build dependency. [target.'cfg(target_os = "macos")'.dependencies] keyring = { version = "3", features = ["apple-native"] } [target.'cfg(target_os = "windows")'.dependencies] keyring = { version = "3", features = ["windows-native"] } [target.'cfg(target_os = "linux")'.dependencies] keyring = { version = "3", features = ["sync-secret-service", "crypto-rust"] } [dev-dependencies] tuta-sdk = { path = "../../tuta-repo/tuta-sdk/rust/sdk", features = ["net", "logging", "testing"] } rpassword = "7"