-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
90 lines (72 loc) · 2.5 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
[package]
name = "scrounch_backend"
version = "0.1.0"
edition = "2021"
[workspace]
members = [".", "migration", "entity", "service", "extractor", "api", "proc"]
# Enable high optimizations for dependencies:
[profile.dev.package."*"]
opt-level = 3
# Git hooks
[dev-dependencies.cargo-husky]
version = "1.5.0"
default-features = false
features = ["precommit-hook", "run-cargo-check", "run-cargo-clippy", "run-cargo-fmt"]
[dev-dependencies]
http-body-util = { version = "0.1.0" }
tower = { version = "0.5.1", features = ["util"] }
testcontainers = "0.22.0"
testcontainers-modules = { version = "0.10.0", features = ["postgres", "minio", "redis"] }
regex = "1.10.6"
axum-test = "16.2.0"
[dependencies]
## Rest API
axum = { version = "0.7.6", features = ["multipart"] }
tower = "0.5.1"
# Runtime
tokio = { version = "1.40.0", features = ["full"] }
tokio-util = { version = "0.7.12", features = ["io"] }
futures = "0.3.30"
# Database
sea-orm = { version = "1.0.1", features = ["sqlx-postgres", "runtime-tokio-rustls", "with-chrono"] }
# Internal
migration = { path = "migration" }
entity = { path = "entity" }
service = { path = "service" }
extractor = { path = "extractor" }
api = { path = "api" }
# CLI + Env + Config
clap = { version = "4.5.17", features = ["derive", "env"] }
dotenvy = { version = "0.15.7", features = ["clap"] }
# Trace + Log
tower-http = { version = "0.5.2", features = ["trace", "cors"] }
tracing = { version = "0.1.40" }
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
log = "0.4.22"
# OpenAPI
utoipa = { version = "5.2.0", features = ["axum_extras", "uuid", "chrono", "time", "decimal", "non_strict_integers"] }
utoipa-axum = "0.1.2"
utoipa-swagger-ui = { version = "8.0.3", features = ["axum"] }
# Auth + OIDC
axum-oidc = "0.5.0"
tower-sessions = "0.13.0"
# Serialisation + Deserialisation
serde = { version = "1.0.210", features = ["derive"] }
serde_json = { version = "1.0.114" }
serde_with = { version ="3.11.0", features = ["macros"] }
# Cache (Redis/Valkey)
fred = { version = "9.2.1", optional = true, features = ["partial-tracing", "serde-json"] }
tower-sessions-redis-store = { version = "0.14.0", optional = true }
# S3 / Minio
rust-s3 = "0.35.1"
# HTTP Client
reqwest = { version = "0.12.7", features = ["json", "cookies"] }
# Utils
uuid = { version = "1.10.0", features = ["v4", "fast-rng", "serde"] }
chrono = "0.4.38"
url = "2.5.2"
rust_decimal = "1.36.0"
humantime = "2.1.0"
[features]
default = ["cache"]
cache = ["dep:fred", "dep:tower-sessions-redis-store", "service/cache" ]