mirror of
https://github.com/narrrl/proton-sdk-rs.git
synced 2026-11-03 16:41:26 +01:00
60 lines
2.2 KiB
TOML
60 lines
2.2 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = ["crates/proton-sdk", "crates/proton-drive-rs"]
|
|
|
|
[workspace.package]
|
|
version = "0.6.0"
|
|
edition = "2024"
|
|
license = "MIT"
|
|
repository = "https://github.com/narrrl/proton-sdk-rs"
|
|
homepage = "https://github.com/narrrl/proton-sdk-rs"
|
|
rust-version = "1.96"
|
|
authors = ["Nils Pukropp <contact@narl.io>"]
|
|
keywords = ["proton", "drive", "openpgp", "encryption", "sdk"]
|
|
categories = ["api-bindings", "cryptography", "filesystem"]
|
|
|
|
# Dependencies build optimized even in dev/test. All of the CPU cost on the
|
|
# transfer paths — rPGP's AES/SHA, bcrypt, the S2K derivations — lives in these
|
|
# crates, and unoptimized rPGP is roughly two orders of magnitude slower, which
|
|
# made debug-profile upload benchmarks measure the compiler rather than the link
|
|
# (~2 MiB/s, CPU-bound, where release is network-bound). Workspace crates stay at
|
|
# `opt-level = 0` so incremental rebuilds and backtraces are unaffected.
|
|
[profile.dev.package."*"]
|
|
opt-level = 2
|
|
|
|
[workspace.dependencies]
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "fs", "io-util", "time"] }
|
|
# `http2` is in reqwest's default set, which `default-features = false` drops:
|
|
# without it every concurrent block download pays its own TCP+TLS handshake
|
|
# instead of multiplexing over one connection.
|
|
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls", "webpki-roots", "stream", "multipart", "gzip", "http2"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_repr = "0.1"
|
|
thiserror = "2"
|
|
async-trait = "0.1"
|
|
futures = "0.3"
|
|
lru = "0.12"
|
|
bytes = "1"
|
|
base64 = "0.22"
|
|
hex = "0.4"
|
|
hmac = "0.13"
|
|
sha1 = "0.11"
|
|
sha2 = "0.11"
|
|
aes-gcm = "0.11"
|
|
hkdf = "0.13"
|
|
bcrypt = "0.19"
|
|
pgp = "0.20"
|
|
# Match the chrono line rPGP pulls in; used to stamp detached-signature subpackets.
|
|
chrono = "0.4"
|
|
tracing = "0.1"
|
|
num-bigint = "0.5"
|
|
num-traits = "0.2"
|
|
getrandom = "0.4"
|
|
# General-purpose RNG (HTTP retry jitter, etc.).
|
|
rand = "0.10"
|
|
# rPGP (pgp 0.20) still depends on rand 0.8 and passes its CryptoRng/Rng traits
|
|
# across its public API, so the RNG we hand to keygen/encryption must be rand 0.8.
|
|
# Kept under an alias alongside rand 0.10; crypto/ uses `rand_08`, the rest `rand`.
|
|
rand_08 = { package = "rand", version = "0.8" }
|