[workspace] resolver = "2" members = [ "crates/cardclaws-types", "crates/cardclaws-config", "crates/cardclaws-db", "crates/cardclaws-auth", "crates/cardclaws-wallet", "crates/cardclaws-api", ] [workspace.package] version = "0.1.0" edition = "2021" license = "UNLICENSED" authors = ["RedClaw Systems LLC"] rust-version = "1.80" [workspace.dependencies] # Internal crates cardclaws-types = { path = "crates/cardclaws-types" } cardclaws-config = { path = "crates/cardclaws-config" } cardclaws-db = { path = "crates/cardclaws-db" } cardclaws-auth = { path = "crates/cardclaws-auth" } cardclaws-wallet = { path = "crates/cardclaws-wallet" } # Async runtime + web tokio = { version = "1", features = ["full"] } axum = { version = "0.7", features = ["macros"] } tower = "0.5" tower-http = { version = "0.6", features = ["cors", "trace", "limit"] } # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" # Database sqlx = { version = "0.8", features = [ "runtime-tokio", "tls-rustls", "postgres", "uuid", "chrono", "json", "migrate", ] } # Cache / sessions / rate limiting redis = { version = "0.27", features = ["tokio-comp", "connection-manager"] } # Auth + crypto jsonwebtoken = "9" argon2 = { version = "0.5", features = ["std"] } sha2 = "0.10" rand = "0.8" base64 = "0.22" # HTTP client (Apple JWKS, OAuth) reqwest = { version = "0.12", default-features = false, features = [ "json", "rustls-tls", ] } # Object storage (Cloudflare R2 via the S3 API). Presigned URLs are generated # offline; deletes use reqwest. rusty-s3 = "0.5" url = "2" # Common uuid = { version = "1", features = ["v4", "serde"] } sha1 = "0.10" zip = { version = "2", default-features = false, features = ["deflate"] } image = { version = "0.25", default-features = false, features = ["png"] } chrono = { version = "0.4", features = ["serde"] } thiserror = "2" anyhow = "1" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } validator = { version = "0.19", features = ["derive"] } async-trait = "0.1" [workspace.lints.clippy] all = { level = "warn", priority = -1 }