[workspace]
members = [".", "migration"]
[workspace.dependencies]
sea-orm = { version = "1.1.1", features = ["sqlx-postgres", "runtime-tokio-rustls", "macros", "with-chrono", "with-uuid"] }
chrono = { version = "0.4.38", features = ["serde"] }
uuid = { version = "1.11.0", features = ["v4", "v7", "serde"] }
serde = { version = "1.0", features = ["derive"] }
[package]
name = "dms"
version = "0.1.0"
edition = "2024"
[lib]
name = "dms"
path = "src/lib.rs"
[dependencies]
axum = { version = "0.8.5", features = ["multipart"] }
log = "0.4.28"
tokio = { version = "1.47.1", features = ["rt-multi-thread", "macros", "sync"] }
tower-http = { version = "0.6.6", features = ["fs", "trace"] }
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
anyhow = "1.0.100"
tracing = "0.1.41"
axum-prometheus = "0.9.0"
metrics-process = "2.4.0"
# Already in the tree under axum-prometheus; declared so the app can describe
# and set gauges of its own alongside the HTTP ones.
metrics = "0.24"
axum-htmx = { version = "0.7.0", features = ["tokio"] }
minijinja = { version = "2.10.2", features = ["loader", "builtins", "json", "urlencode"] }
minijinja-embed = "2.12"
# Database dependencies
sea-orm = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
serde = { workspace = true }
argon2 = { version = "0.6.0-rc.1", features = ["std"] }
sha2 = "0.11.0-rc.2"
hex = "0.4.3"
migration = { path = "./migration" }
# CLI dependencies
clap = { version = "4.5", features = ["derive"] }
rpassword = "7.4"
serde_json = "1.0.145"
# Queue + storage + media
lapin = "2.5"
futures-util = "0.3"
tokio-util = { version = "0.7", features = ["io"] }
image = "0.25"
mime = "0.3"
mime_guess = "2.0"
async-trait = "0.1"
thiserror = "2.0"
ocrs = "0.10"
rten = "0.21"
rten-imageproc = "0.21"
qrcode = { version = "0.14", default-features = false, features = ["svg"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "rustls-tls"] }
# Zip ingest. Only the codecs real-world image archives use — "stored" is
# always available, deflate covers everything Finder/Explorer produce.
zip = { version = "8", default-features = false, features = ["deflate"] }
[build-dependencies]
minijinja-embed = "2.12"
[dev-dependencies]
tokio = { version = "1.47.1", features = ["macros", "rt-multi-thread"] }
# "mock" lets the job-upsert tests assert on generated SQL without a live DB.
sea-orm = { workspace = true, features = ["mock"] }
⭐
Log in to mark this repository.
2.4 KiB · text
History
5a7f679