-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathCargo.toml
More file actions
91 lines (75 loc) · 2.57 KB
/
Copy pathCargo.toml
File metadata and controls
91 lines (75 loc) · 2.57 KB
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
91
[workspace]
resolver = "2"
members = [
"crates/ampel-api",
"crates/ampel-core",
"crates/ampel-db",
"crates/ampel-providers",
"crates/ampel-worker",
"crates/ampel-i18n-builder",
]
[workspace.package]
version = "0.5.1" # x-release-please-version
edition = "2021"
license = "MIT"
repository = "https://github.com/pacphi/ampel"
[workspace.dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
# Web framework
axum = "0.8"
tower = "0.4"
tower-http = { version = "0.6", features = ["cors", "trace", "compression-gzip"] }
# Database - SQLite support added for testing
sea-orm = { version = "1.1", features = ["sqlx-postgres", "sqlx-sqlite", "runtime-tokio-rustls", "macros"] }
sea-orm-migration = "1.1"
# Background jobs
apalis = "0.6"
apalis-cron = "0.6"
# Git providers
reqwest = { version = "0.12", features = ["json", "rustls-tls"] }
# Auth & Security
# `rust_crypto` backend (pure Rust, no C toolchain). Ampel signs its JWTs with
# HS256; jsonwebtoken v10 still requires a full crypto backend feature to
# register a CryptoProvider, and the only rsa-free backend is `aws_lc_rs` (which
# would add the aws-lc-sys C dependency). We keep the pure-Rust backend and
# accept the transitive `rsa` crate (RUSTSEC-2023-0071, dead code here since
# Ampel never uses RSA JWTs) via a documented ignore in deny.toml.
jsonwebtoken = { version = "10", features = ["rust_crypto"] }
argon2 = "0.5"
aes-gcm = "0.10"
rand = "0.9"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Validation
validator = { version = "0.20", features = ["derive"] }
# Utilities
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
thiserror = "1"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
config = "0.14"
dotenvy = "0.15"
url = "2"
base64 = "0.22"
# Metrics
metrics = "0.24"
metrics-exporter-prometheus = { version = "0.16", default-features = false }
metrics-util = "0.19"
# Redis
redis = { version = "0.27", features = ["tokio-comp", "connection-manager"] }
# API Documentation
utoipa = { version = "5", features = ["axum_extras"] }
# Email
lettre = { version = "0.11.22", default-features = false, features = ["tokio1", "tokio1-rustls-tls", "smtp-transport", "builder"] }
# Internal crates
ampel-core = { path = "crates/ampel-core" }
ampel-db = { path = "crates/ampel-db" }
ampel-providers = { path = "crates/ampel-providers" }
# Test profile optimizations
[profile.test]
opt-level = 1 # Faster test compilation with minimal optimization