mirror of
https://github.com/spartanz51/tutabridge.git
synced 2026-06-24 10:54:32 +02:00
Split the bridge into a tutabridge-core crate, a Tauri v2 desktop app (src-tauri) and a React/TS UI (ui), keeping the CLI entrypoint at the workspace root. Add encrypted local storage (SQLCipher metadata index + encrypted .eml files) so mail persists across launches and only the delta is fetched. Wire the bridge to the Tuta Rust SDK via the tuta-repo submodule (batch loading, MailDetailsBlob reading, interactive 2FA login). Implement SMTP sending: build the draft and send it through Tuta's DraftService/SendDraftService, mirroring the web client (body in compressedBodyText, non-empty sender/recipient names, populated SendDraftParameters). Add unit tests for the draft/send payload building.
39 lines
894 B
TOML
39 lines
894 B
TOML
[package]
|
|
name = "tutabridge-core"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
rust-version = "1.84.0"
|
|
|
|
[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" }
|
|
|
|
keyring = { version = "3", features = ["apple-native"] }
|
|
rand = "0.8"
|
|
|
|
thiserror = "2.0"
|
|
base64 = "0.22"
|
|
dirs = "6"
|
|
anyhow = "1"
|
|
rand_core = "0.6"
|
|
rusqlite = { version = "0.32", features = ["bundled-sqlcipher"] }
|
|
hex = "0.4"
|
|
|
|
[dev-dependencies]
|
|
tuta-sdk = { path = "../../tuta-repo/tuta-sdk/rust/sdk", features = ["net", "logging", "testing"] }
|
|
rpassword = "7"
|