Cargo.toml (1734B)
1 [package] 2 name = "otelmart" 3 version.workspace = true 4 edition.workspace = true 5 authors.workspace = true 6 7 [lints] 8 workspace = true 9 10 [dependencies] 11 # Async runtime 12 tokio = { workspace = true } 13 14 # Web framework 15 axum = { workspace = true, features = ["macros"] } 16 tower = { workspace = true } 17 tower-http = { workspace = true, features = ["fs", "cors"] } 18 19 # Database 20 sqlx = { workspace = true, features = [ 21 "runtime-tokio-rustls", 22 "postgres", 23 "uuid", 24 "chrono", 25 "migrate", 26 ] } 27 28 # Serialization 29 serde = { workspace = true } 30 serde_json = { workspace = true } 31 32 # HTTP Client (for proxying) 33 reqwest = { workspace = true } 34 35 # Security 36 bcrypt = { workspace = true } 37 jsonwebtoken = { workspace = true } 38 39 # Utilities 40 uuid = { workspace = true } 41 chrono = { workspace = true } 42 anyhow = { workspace = true } 43 thiserror = { workspace = true } 44 45 # Configuration 46 config = { workspace = true } 47 dotenvy = { workspace = true } 48 49 # URL encoding 50 urlencoding = { workspace = true } 51 52 # Telemetry / Observability 53 # 54 # Core tracing ecosystem 55 tracing = { workspace = true } 56 tracing-subscriber = { workspace = true } 57 58 # OpenTelemetry core 59 opentelemetry = { workspace = true } 60 opentelemetry_sdk = { workspace = true } 61 opentelemetry-appender-tracing = { workspace = true } 62 63 # OTLP exporter (sends traces to collectors/backends) 64 opentelemetry-otlp = { workspace = true } 65 66 # Bridge between tracing and OpenTelemetry 67 tracing-opentelemetry = { workspace = true } 68 69 # HTTP instrumentation (server + client) 70 axum-tracing-opentelemetry = { workspace = true } 71 reqwest-middleware = { workspace = true } 72 reqwest-tracing = { workspace = true } 73 axum-otel-metrics = { workspace = true } 74 75 # Hash utils 76 hex = { workspace = true } 77 sha2 = { workspace = true } 78 79 [dev-dependencies]