2026-08-03 09:42:13 +01:00
|
|
|
# Cargo.toml
|
|
|
|
|
[package]
|
|
|
|
|
name = "rs_maps"
|
2026-08-03 14:21:40 +01:00
|
|
|
version = "0.3.0"
|
2026-08-03 09:42:13 +01:00
|
|
|
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"
|
2026-08-03 13:41:35 +01:00
|
|
|
# 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",
|
|
|
|
|
] }
|
|
|
|
|
|
2026-08-03 09:42:13 +01:00
|
|
|
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
|