[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 = ["jxl"] playground = ["dep:inquire", "dep:color-eyre"] testcontainers = [ "dep:testcontainers", "dep:testcontainers-modules", "dep:testcontainers-ext", "downloader/testcontainers", "testcontainers-modules/postgres", ] jxl = ["dep:jpegxl-rs", "dep:jpegxl-sys"] [dependencies] downloader = { workspace = true } util = { workspace = true } util-derive = { workspace = true } fetch = { workspace = true } serde = { workspace = true } tokio = { workspace = true } serde_json = { workspace = true } async-trait = { workspace = true } testcontainers = { workspace = true, optional = true } testcontainers-modules = { workspace = true, optional = true } testcontainers-ext = { workspace = true, optional = true, features = [ "tracing", ] } tracing = { workspace = true } axum = { workspace = true } axum-extra = { workspace = true } snafu = { workspace = true } itertools = { workspace = true } url = { workspace = true } regex = { workspace = true } lazy_static = { workspace = true } quirks_path = { workspace = true } futures = { workspace = true } bytes = { workspace = true } serde_with = { workspace = true } moka = { workspace = true } chrono = { workspace = true } tracing-subscriber = { workspace = true } mockito = { workspace = true } color-eyre = { workspace = true, optional = true } inquire = { workspace = true, optional = true } convert_case = { workspace = true } image = { workspace = true } uuid = { workspace = true } maplit = { workspace = true } once_cell = { workspace = true } rand = { workspace = true } rust_decimal = { workspace = true } base64 = { workspace = true } nom = { workspace = true } percent-encoding = { workspace = true } num-traits = { workspace = true } http = { workspace = true } async-stream = { workspace = true } serde_variant = { workspace = true } tracing-appender = { workspace = true } clap = { workspace = true } ipnetwork = { workspace = true } typed-builder = { workspace = true } nanoid = { workspace = true } webp = { workspace = true } sea-orm = { version = "1.1", features = [ "sqlx-sqlite", "sqlx-postgres", "runtime-tokio", "macros", "debug-print", ] } figment = { version = "0.10", features = ["toml", "json", "env", "yaml"] } sea-orm-migration = { version = "1.1", features = ["runtime-tokio"] } rss = "2" fancy-regex = "0.14" lightningcss = "1.0.0-alpha.66" html-escape = "0.2.13" opendal = { version = "0.53", features = ["default", "services-fs"] } scraper = "0.23" async-graphql = { version = "7", features = ["dynamic-schema"] } async-graphql-axum = "7" seaography = { version = "1.1", features = [ "with-json", "with-chrono", "with-time", "with-uuid", "with-decimal", "with-bigdecimal", "with-postgres-array", "with-json-as-scalar", ] } tower = "0.5.2" tower-http = { version = "0.6", features = [ "trace", "catch-panic", "timeout", "add-extension", "cors", "fs", "set-header", "compression-full", ] } tera = "1.20.0" openidconnect = { version = "4" } dotenvy = "0.15.7" jpegxl-rs = { version = "0.11.2", optional = true } jpegxl-sys = { version = "0.11.2", optional = true } apalis = { version = "0.7", features = ["limit", "tracing", "catch-panic"] } apalis-sql = { version = "0.7", features = ["postgres"] } cocoon = { version = "0.4.3", features = ["getrandom", "thiserror"] } reqwest_cookie_store = "0.8.0" jwtk = "0.4.0" mime_guess = "2.0.5" icu_properties = "2.0.1" icu = "2.0.0" tracing-tree = "0.4.0" num_cpus = "1.17.0" headers-accept = "0.1.4" [dev-dependencies] inquire = { workspace = true } color-eyre = { workspace = true } serial_test = "3" insta = { version = "1", features = ["redactions", "toml", "filters"] } rstest = "0.25" ctor = "0.4.0"