[package] name = "papercrate" version = "0.1.0" edition = "2021" [dependencies] # Web framework axum = { version = "0.8", features = ["multipart"] } tokio = { version = "1.48", features = ["full"] } tower = { version = "0.5", features = ["make", "util"] } tower-http = { version = "0.6", features = ["cors", "trace"] } axum-extra = { version = "0.12", features = ["typed-header"] } # Database diesel = { version = "2.3.3", features = ["postgres", "uuid", "chrono", "serde_json", "r2d2"] } diesel_migrations = "2.1" uuid = { version = "1.6", features = ["v4", "serde"] } chrono = { version = "0.4", features = ["serde"] } # S3 rust-s3 = { version = "0.37", features = ["with-tokio", "tokio-rustls-tls"] } # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" envy = "0.4" serde-aux = "4.4" # Utilities tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } dotenv = "0.15" sha2 = "0.10" hex = "0.4" hmac = "0.12" bytes = "1.5" async-trait = "0.1" image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] } pdfium-render = "0.8.36" mime_guess = "2.0" tempfile = "3.10" reqwest = { version = "0.12.24", default-features = false, features = ["json", "rustls-tls", "stream"] } percent-encoding = "2.3" base64 = "0.22" quick-xml = "0.38" futures-util = "0.3" url = "2.5" once_cell = "1.19" regex = "1.11" infer = "0.19" utoipa = { version = "4.2", default-features = false, features = ["chrono", "uuid", "preserve_order"] } clap = { version = "4.5", features = ["derive"] } # Error handling thiserror = "2.0" anyhow = "1.0" # Authentication & security argon2 = "0.5" jsonwebtoken = { version = "10", features = ["rust_crypto"] } webauthn-rs = { version = "0.5", features = ["danger-allow-state-serialisation", "danger-credential-internals"] } serde_bytes = "0.11" serde_cbor_2 = "0.13" # Misc rand = "0.9" hyper = "1.2" http-body-util = "0.1" chrono-tz = "0.8" [dev-dependencies] once_cell = "1.19" webauthn-rs-core = "0.5" serde_yaml = "0.9" [build-dependencies] serde = { version = "1.0", features = ["derive"] } serde_yaml = "0.9" serde_json = "1.0" regex = "1.11" [[bin]] name = "backend" path = "src/main.rs" [[bin]] name = "worker" path = "src/bin/worker.rs" [[bin]] name = "webdav" path = "src/bin/webdav.rs" [[bin]] name = "admin" path = "src/bin/admin.rs" [[bin]] name = "openapi-dump" path = "src/bin/openapi_dump.rs"