# Cargo.toml [package] name = "rs_maps" version = "0.3.1" edition = "2021" [dependencies] axum = { version = "0.8", features = ["multipart", "macros"] } tokio = { version = "1", features = ["full"] } tower-http = { version = "0.6", features = ["trace"] } # "tls-rustls" is an alias that selects aws-lc-rs. Naming ring explicitly keeps # sqlx and lettre on one crypto provider rather than compiling both into the # binary — which also avoids the ambiguity that makes rustls' install_default() # panic when two providers are present. sqlx = { version = "0.8", default-features = false, features = [ "runtime-tokio", "tls-rustls-ring", "postgres", "uuid", "time", "macros", "migrate", ] } tower-sessions = "0.14" tower-sessions-sqlx-store = { version = "0.15", features = ["postgres"] } argon2 = "0.5" password-hash = { version = "0.5", features = ["std"] } rand = "0.8" # HTTP client for proxying route requests to brouter.de. rustls-tls-manual-roots # is avoided; ring + webpki roots keeps one crypto provider across the binary, # matching the sqlx and lettre feature choices above. reqwest = { version = "0.12", default-features = false, features = [ "rustls-tls-webpki-roots", "json", "charset", "http2", ] } sha2 = "0.10" subtle = "2" hex = "0.4" # 0.11.22 split rustls support three ways — transport, crypto provider and # certificate roots must each be named or the build stops at a compile_error!. # ring: no cmake/NASM build dependency, unlike aws-lc-rs. # webpki-roots: bundled Mozilla roots, so SMTP TLS doesn't depend on the host # trust store being populated. Swap to rustls-native-certs if the SMTP provider # uses a private CA. lettre = { version = "0.11", default-features = false, features = [ "tokio1-rustls", "ring", "webpki-roots", "smtp-transport", "builder", "pool", ] } rust-embed = { version = "8", features = ["debug-embed"] } mime_guess = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" uuid = { version = "1", features = ["v4", "serde"] } time = { version = "0.3", features = ["serde", "formatting"] } dotenvy = "0.15" anyhow = "1" thiserror = "2" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } [profile.release] opt-level = 3 lto = true strip = true