[workspace] members = [ "crates/adapters/auth", "crates/adapters/event-publisher", "crates/adapters/metadata", "crates/adapters/poster-fetcher", "crates/adapters/object-storage", "crates/adapters/poster-sync", "crates/adapters/rss", "crates/adapters/sqlite", "crates/adapters/postgres", "crates/adapters/sqlite-federation", "crates/adapters/postgres-federation", "crates/adapters/sqlite-event-queue", "crates/adapters/postgres-event-queue", "crates/adapters/template-askama", "crates/adapters/activitypub", "crates/adapters/export", "crates/adapters/event-payload", "crates/adapters/nats", "crates/api-types", "crates/application", "crates/adapters/tmdb-enrichment", "crates/adapters/image-converter", "crates/domain", "crates/presentation", "crates/tui", "crates/worker", "crates/adapters/importer", "crates/adapters/jellyfin", "crates/adapters/plex", "crates/adapters/sqlite-search", "crates/adapters/postgres-search", ] resolver = "2" [workspace.dependencies] tokio = { version = "1.0", features = ["macros", "net", "rt", "rt-multi-thread", "sync", "time"] } bytes = "1" futures = "0.3" dotenvy = "0.15" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" anyhow = "1.0" thiserror = "2.0" tracing = "0.1" tracing-subscriber = { version = "0.3.23", features = ["env-filter"] } async-trait = "0.1" uuid = { version = "1.23.0", features = ["v4", "v5", "serde"] } chrono = { version = "0.4", features = ["serde"] } sqlx = { version = "0.8.6", features = [ "runtime-tokio-rustls", "sqlite", "uuid", "macros", ] } rand = "0.9" reqwest = { version = "0.13", features = ["json", "query"] } sha2 = "0.10" hex = "0.4" object_store = { version = "0.11", features = ["aws"] } axum = { version = "0.8.8", features = ["macros", "multipart"] } csv = "1" api-types = { path = "crates/api-types" } domain = { path = "crates/domain" } tmdb-enrichment = { path = "crates/adapters/tmdb-enrichment" } application = { path = "crates/application" } presentation = { path = "crates/presentation" } auth = { path = "crates/adapters/auth" } metadata = { path = "crates/adapters/metadata" } poster-fetcher = { path = "crates/adapters/poster-fetcher" } object-storage = { path = "crates/adapters/object-storage" } poster-sync = { path = "crates/adapters/poster-sync" } event-publisher = { path = "crates/adapters/event-publisher" } rss = { path = "crates/adapters/rss" } export = { path = "crates/adapters/export" } sqlite = { path = "crates/adapters/sqlite" } sqlite-federation = { path = "crates/adapters/sqlite-federation" } postgres = { path = "crates/adapters/postgres" } postgres-federation = { path = "crates/adapters/postgres-federation" } template-askama = { path = "crates/adapters/template-askama" } activitypub = { path = "crates/adapters/activitypub" } event-payload = { path = "crates/adapters/event-payload" } nats = { path = "crates/adapters/nats" } sqlite-event-queue = { path = "crates/adapters/sqlite-event-queue" } postgres-event-queue = { path = "crates/adapters/postgres-event-queue" } importer = { path = "crates/adapters/importer" } jellyfin = { path = "crates/adapters/jellyfin" } plex = { path = "crates/adapters/plex" } image-converter = { path = "crates/adapters/image-converter" } sqlite-search = { path = "crates/adapters/sqlite-search" } postgres-search = { path = "crates/adapters/postgres-search" }