[workspace] resolver = "2" members = ["crates/pdfs-core", "crates/pdfs-fuse", "crates/pdfs-cli", "crates/pdfs-gui"] [workspace.package] version = "1.8.2" edition = "2024" license = "MIT" authors = ["Nils Pukropp "] rust-version = "1.96" [workspace.dependencies] proton-sdk = { version = "0.6.0" } proton-drive-rs = { version = "0.6.0" } # Internal crates. pdfs-core = { path = "crates/pdfs-core" } pdfs-fuse = { path = "crates/pdfs-fuse" } tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "fs", "io-util", "time", "signal"] } serde = { version = "1", features = ["derive"] } serde_json = "1" thiserror = "2" anyhow = "1" # Non-poisoning mutexes. A handler that panics while holding a lock must not # wedge every later acquisition of it: `Workers` catches the unwind to keep the # pool alive, and `std::sync::Mutex` would defeat that by poisoning the state # the recovered worker needs. parking_lot = "0.12" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } directories = "5" ignore = "0.4" sha2 = "0.10" # Google Takeout exports are zip sets; the importer reads their central # directories and streams entries out without extracting to disk first. zip = { version = "8", default-features = false, features = ["deflate"] } # Proton's photo duplicate detection is keyed on the plaintext SHA-1, so an # import has to speak SHA-1 whatever its age. sha1 = "0.10" # Thumbnail generation for photos the server has none for. Decoders only for the # formats a camera or phone actually produces — the rest of the crate's codecs # would be dead weight in the daemon. image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "gif", "tiff", "bmp", "rayon"] } rusqlite = { version = "0.32", features = ["bundled"] } keyring = { version = "3", features = ["sync-secret-service", "crypto-rust"] } clap = { version = "4", features = ["derive"] } rpassword = "7" async-trait = "0.1" futures = "0.3" fuser = "0.17" libc = "0.2" # LOCAL ONLY — do not commit. The Takeout import needs album writes and batch # duplicate detection, which are in the working tree of proton-sdk-rs but not in # a published 0.6.x. Releases build against the registry versions. [patch.crates-io] proton-sdk = { path = "../proton-sdk-rs/crates/proton-sdk" } proton-drive-rs = { path = "../proton-sdk-rs/crates/proton-drive-rs" }