[package] name = "api" version = "0.1.0" edition = "2024" default-run = "api" [features] default = ["sqlite", "auth-jwt", "jellyfin"] sqlite = ["infra/sqlite"] postgres = ["infra/postgres"] auth-oidc = ["infra/auth-oidc"] auth-jwt = ["infra/auth-jwt"] jellyfin = ["infra/jellyfin"] local-files = ["infra/local-files", "dep:tokio-util", "dep:sqlx"] [profile.release] strip = true lto = true codegen-units = 1 [dependencies] k-core = { git = "https://git.gabrielkaszewski.dev/GKaszewski/k-core", features = [ "logging", "db-sqlx", "sqlite", "http", ] } domain = { path = "../domain" } infra = { path = "../infra", default-features = false, features = ["sqlite"] } # Web framework axum = { version = "0.8.8", features = ["macros"] } axum-extra = { version = "0.10", features = [ "cookie-private", "cookie-key-expansion", ] } tower = "0.5.2" tower-http = { version = "0.6.2", features = ["cors", "trace"] } # Async runtime tokio = { version = "1.48.0", features = ["full"] } # Serialization serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0" serde_qs = "0.13" rand = "0.8" # Error handling thiserror = "2.0.17" anyhow = "1.0" # Utilities chrono = { version = "0.4.42", features = ["serde"] } uuid = { version = "1.19.0", features = ["v4", "serde"] } # Logging tracing = "0.1" reqwest = { version = "0.12", features = ["json"] } async-trait = "0.1" dotenvy = "0.15.7" time = "0.3" tokio-util = { version = "0.7", features = ["io"], optional = true } sqlx = { version = "0.8.6", features = ["runtime-tokio", "sqlite"], optional = true }