[package]
name = "dim-core"
build = "src/build.rs"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true

[features]
vaapi = ["nightfall/vaapi"]

# the build script usually will enable this if `yarn` is installed.
# If enabled explicitly, the build script will panic if something went wrong.
embed_ui = []

[dependencies]
# git dependencies
nightfall = { git = "https://github.com/Dusk-Labs/nightfall", tag = "0.3.12-rc4", default-features = false, features = [
    "cuda",
    "ssa_transmux",
] }

# local dependencies
dim-auth = { path = "../dim-auth" }
dim-database = { path = "../dim-database" }
dim-events = { path = "../dim-events" }
dim-extern-api = { path = "../dim-extern-api" }
dim-utils = { path = "../dim-utils" }

serde = { version = "^1.0.125", default-features = false, features = [
    "derive",
    "std",
    "rc",
] }
serde_derive = "^1.0.125"
serde_json = "^1.0.64"

async-trait = "0.1.50"
bytes = "1.0.1"
cfg-if = "1.0.0"
chrono = { version = "0.4.19", features = ["serde"] }
dia-i18n = "0.10.0"
displaydoc = "0.2.3"
dominant_color = "0.3.0"
futures = "0.3.14"
fuzzy-matcher = "0.3.7"
http = "^0.2.3"
hyper = "0.14.20"
image = "0.24.3"
itertools = "0.10.3"
lazy_static = "1.4.0"
libsqlite3-sys = { version = "^0.24.0" }
notify = "5.0.0"
once_cell = "1.8.0"
parking_lot = "0.12.0"
percent-encoding = "2.1.0"
rand = { version = "0.8.5", features = ["small_rng"] }
reqwest = { version = "0.11.0", features = [
    "json",
    "rustls-tls",
    "brotli",
], default-features = false }
rusqlite = { version = "0.27.0", features = ["hooks"] }
rust-embed = "^5.9.0"
sqlx = { version = "0.5", features = ["runtime-tokio-rustls"] }
thiserror = "1.0.30"
tokio = { version = "1", features = ["rt", "signal", "full", "tracing"] }
tokio-stream = "0.1.12"
tokio-tungstenite = "0.20.1"
toml = "0.5.8"
tracing = "0.1.32"
tracing-appender = "0.2.0"
tracing-subscriber = { version = "^0.3.10", features = [
    "fmt",
    "env-filter",
    "json",
] }
url = "2.2.2"
uuid = { version = "1.2.2", features = ["v4"] }
walkdir = "2.3.1"
warp = { version = "0.3.3", features = ["tls", "tokio-rustls"] }
xmlwriter = "0.1.0"
xtra = { version = "0.5.1", features = ["tokio", "with-tokio-1"] }

[target.'cfg(unix)'.dependencies]
nix = "0.23.1"

[target.'cfg(windows)'.dependencies]
zip = "0.5.10"

[dev-dependencies]
serial_test = "0.6.0"
tempfile = "3.3.0"
criterion = { version = "0.3", features = ["async_tokio"] }

[[bench]]
name = "movie_scanner"
harness = false
