backend/Cargo.toml
Rama main · réplica de lectura del repositorio original.
[package]
name = "betterlytics"
version = "0.1.0"
edition = "2024"
[dependencies]
# Framework
axum = "0.8.3"
tokio = { version = "1.44.2", features = ["full", "time"] }
tower = "0.5.2"
tower-http = { version = "0.6.2", features = ["trace", "fs", "cors", "limit"] }
# Configuration
dotenv = "0.15.0"
# Error handling
thiserror = "2.0.12"
anyhow = "1.0.98"
# Logging
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
# Analytics
serde = "1.0.219"
serde_json = "1.0.140"
md-5 = "0.10.6"
nanoid = "0.4.0"
url = "2.5.0"
psl = "2.1"
once_cell = "1.19.0"
refparser = "0.1.0"
# Database
clickhouse = { version = "0.13.2", features = ["inserter", "chrono", "uuid"] }
chrono = { version = "0.4.40", features = ["serde"] }
uuid = { version = "1.16.0", features = ["v4", "serde"] }
# GeoIP / HTTP client
maxminddb = "0.26.0"
reqwest = { version = "0.12.15", default-features = false, features = ["json", "stream", "rustls-tls", "rustls-tls-native-roots"] }
flate2 = "1.1.1"
tar = "0.4.44"
httpdate = "1.0.3"
bytes = "1.10.1"
x509-parser = "0.16.0"
tokio-rustls = { version = "0.26.4", default-features = false, features = ["ring", "tls12", "logging"] }
rustls = { version = "0.23.32", default-features = false, features = ["ring", "tls12", "std", "logging"] }
rustls-native-certs = "0.7"
# Regex
regex = "1.10"
# Hashing / Crypto
sha2 = "0.10"
aes-gcm = "0.10"
hex = "0.4"
# User Agent Parsing
uaparser = "0.6.4"
moka = { version = "0.12.10", features = ["sync", "future"] }
serde_repr = "0.1.20"
strum_macros = "0.27.1"
strum = "0.27.1"
rand = "0.8"
governor = "0.10"
# Prometheus metrics
prometheus = { version = "0.14.0", default-features = false }
sysinfo = { version = "0.35.2", default-features = false, features = ["system"] }
# AWS S3 (for session replay storage)
aws-sdk-s3 = { version = "1.106.0", default-features = false, features = ["rt-tokio", "http-1x"] }
aws-smithy-http-client = { version = "1", features = ["rustls-ring"] }
futures = "0.3"
ipnet = "2.9"
tokio-postgres = { version = "0.7", features = ["with-chrono-0_4", "with-serde_json-1"] }
bb8 = "0.7"
bb8-postgres = "0.7"
async-trait = "0.1"
arc-swap = "1.7"
dashmap = "5.5"
fancy-regex = "0.19.0"
[dev-dependencies]
clickhouse = { version = "0.13.2", features = ["test-util"] }
tokio = { version = "1.44.2", features = ["full", "test-util"] }
http = "1"