[package]
name = "recorder"
version = "0.1.0"
edition = "2024"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "recorder"
path = "src/lib.rs"

[[bin]]
name = "recorder_cli"
path = "src/bin/main.rs"
required-features = []

[features]
default = []
testcontainers = [
    "dep:testcontainers",
    "dep:testcontainers-modules",
    "dep:bollard",
]

[dependencies]
loco-rs = { version = "0.14" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1.42", features = ["macros", "fs", "rt-multi-thread"] }
async-trait = "0.1.83"
tracing = "0.1"
chrono = "0.4"
sea-orm = { version = "1.1", features = [
    "sqlx-sqlite",
    "sqlx-postgres",
    "runtime-tokio-rustls",
    "macros",
    "debug-print",
] }
figment = { version = "0.10", features = ["toml", "json", "env", "yaml"] }

axum = "0.8"
uuid = { version = "1.6.0", features = ["v4"] }
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
sea-orm-migration = { version = "1.1", features = ["runtime-tokio-rustls"] }
reqwest = { version = "0.12", features = [
    "charset",
    "http2",
    "json",
    "macos-system-configuration",
    "rustls-tls",
] }
thiserror = "2"
rss = "2"
bytes = "1.9"
itertools = "0.14"
url = "2.5"
fancy-regex = "0.14"
regex = "1.11"
lazy_static = "1.5"
maplit = "1.0.2"
lightningcss = "1.0.0-alpha.61"
html-escape = "0.2.13"
opendal = { version = "0.51.0", features = ["default", "services-fs"] }
zune-image = "0.4.15"
once_cell = "1.20.2"
reqwest-middleware = "0.4.0"
reqwest-retry = "0.7.0"
reqwest-tracing = "0.5.5"
scraper = "0.22.0"
leaky-bucket = "1.1.2"
serde_with = "3"
jwt-authorizer = "0.15.0"
futures = "0.3.31"
librqbit-core = "4"
qbit-rs = { git = "https://github.com/lonelyhentxi/qbit.git", rev = "72d53138ebe", features = [
    "default",
    "builder",
] }
testcontainers = { version = "0.23.3", features = [
    "default",
    "properties-config",
    "watchdog",
    "http_wait",
    "reusable-containers",
], optional = true }
testcontainers-modules = { version = "0.11.4", optional = true }
color-eyre = "0.6"
log = "0.4.22"
anyhow = "1.0.95"
bollard = { version = "0.18", optional = true }
async-graphql = { version = "7.0.15", features = [] }
async-graphql-axum = "7.0.15"
fastrand = "2.3.0"
seaography = { version = "1.1" }
quirks_path = "0.1.1"
base64 = "0.22.1"
tower = "0.5.2"
axum-extra = "0.10.0"
tower-http = "0.6.2"
serde_yaml = "0.9.34"
tera = "1.20.0"
openidconnect = "4"
http-cache-reqwest = { version = "0.15", features = [
    "manager-cacache",
    "manager-moka",
] }
moka = "0.12.10"
http-cache = { version = "0.20.0", features = [
    "cacache-tokio",
    "manager-cacache",
    "manager-moka",
], default-features = false }
http-cache-semantics = "2.1.0"
dotenv = "0.15.0"
nom = "8.0.0"

[dev-dependencies]
serial_test = "3"
loco-rs = { version = "0.14", features = ["testing"] }
insta = { version = "1", features = ["redactions", "yaml", "filters"] }
