[package] name = "imageforge" version = "0.1.0" edition = "2021" rust-version = "1.92" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] axum = { version = "0.8", features = ["multipart"] } tokio = { version = "1", features = ["full"] } tower-http = { version = "0.6", features = ["cors", "trace", "compression-full", "fs"] } axum-extra = { version = "0.12", features = ["cookie"] } time = "0.3" serde = { version = "1", features = ["derive"] } serde_json = "1" bytes = "1" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } uuid = { version = "1", features = ["v4", "serde"] } chrono = { version = "0.4", features = ["serde"] } dotenvy = "0.15" sqlx = { version = "0.7", features = ["runtime-tokio-rustls", "postgres", "uuid", "chrono", "json"] } redis = { version = "0.24.1", features = ["tokio-comp", "connection-manager", "streams"] } # Auth / security argon2 = "0.5" base64 = "0.22" hex = "0.4" hmac = "0.12" jsonwebtoken = "9" percent-encoding = "2" rand = "0.8" sha2 = "0.10" aes-gcm = "0.10" # S3-compatible object storage (Garage, MinIO, AWS S3, etc.) aws-sdk-s3 = { version = "1", default-features = false, features = ["rustls", "default-https-client", "rt-tokio"] } # Images # Keep image-rs limited to formats exposed by the API. AVIF decoding uses # libdav1d on Linux; encoding is handled by the direct ravif dependency. image = { version = "0.25", default-features = false, features = ["bmp", "gif", "ico", "jpeg", "png", "tiff", "webp"] } jpeg-encoder = "0.7" oxipng = "9" ravif = { version = "0.11", default-features = false, features = ["threading"] } webp = { version = "0.3", default-features = false } rgb = "0.8" img-parts = "0.4" # HTTP client (Stripe API) reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] } url = "2" # Mail lettre = { version = "0.11", default-features = false, features = ["tokio1", "tokio1-rustls-tls", "builder", "smtp-transport"] } # ZIP download (batch) tokio-util = { version = "0.7", features = ["io"] } zip = "2" [target.'cfg(target_os = "linux")'.dependencies] image = { version = "0.25", default-features = false, features = ["avif-native"] } ravif = { version = "0.11", default-features = false, features = ["asm", "threading"] }