[package] authors = ["Braden Steffaniak"] categories = ["multimedia"] description = "MoosicBox server package" edition = "2021" keywords = ["api", "audio", "moosicbox", "server"] license = "MPL-2.0" name = "moosicbox_server" readme = "README.md" repository = "https://github.com/MoosicBox/MoosicBox" version = "0.1.0" [[bin]] name = "moosicbox_server" path = "src/main.rs" required-features = [] [package.metadata.cargo-machete] ignored = ["strum"] [package.metadata.cargo-udeps.ignore] normal = ["moosicbox_schema"] [dependencies] moosicbox_assert = { version = "0.1.0", path = "../assert", default-features = false } moosicbox_async_service = { version = "0.1.0", path = "../async_service", default-features = false } moosicbox_audio_output = { version = "0.1.0", path = "../audio_output", default-features = false } moosicbox_audio_zone = { version = "0.1.0", path = "../audio_zone", default-features = false, features = [ "api", "events", ] } moosicbox_auth = { version = "0.1.0", path = "../auth", optional = true, default-features = false } moosicbox_config = { version = "0.1.0", path = "../config", default-features = false, features = [ "api", "db", ] } moosicbox_core = { version = "0.1.0", path = "../core", default-features = false } moosicbox_database = { version = "0.1.0", path = "../database", default-features = false, features = [ "api", ] } moosicbox_database_connection = { version = "0.1.0", path = "../database_connection", default-features = false, features = [ ] } moosicbox_env_utils = { version = "0.1.0", path = "../env_utils", default-features = false } moosicbox_files = { version = "0.1.0", path = "../files", default-features = false, features = [ "files", "image", "range", "track-range", ] } moosicbox_json_utils = { version = "0.1.0", path = "../json_utils", default-features = false, features = [ "database", ] } moosicbox_logging = { version = "0.1.0", path = "../logging", default-features = false } moosicbox_mdns = { version = "0.1.0", path = "../mdns", default-features = false } moosicbox_middleware = { version = "0.1.0", path = "../middleware", default-features = false } moosicbox_music_api = { version = "0.1.0", path = "../music_api", default-features = false } moosicbox_profiles = { version = "0.1.0", path = "../profiles", default-features = false, features = [ "events", ] } moosicbox_schema = { version = "0.1.0", path = "../schema", optional = true, default-features = false } moosicbox_session = { version = "0.1.0", path = "../session", default-features = false, features = [ "events", ] } moosicbox_task = { version = "0.1.0", path = "../task", default-features = false } moosicbox_ws = { version = "0.1.0", path = "../ws", default-features = false, features = [ "ws", ] } # APIs moosicbox_admin_htmx = { version = "0.1.0", path = "../admin_htmx", default-features = false, features = [ "qobuz", "tidal", ], optional = true } moosicbox_downloader = { version = "0.1.0", path = "../downloader", default-features = false, features = [ "api", ], optional = true } moosicbox_library = { version = "0.1.0", path = "../library", default-features = false, features = [ "api", ], optional = true } moosicbox_menu = { version = "0.1.0", path = "../menu", default-features = false, features = [ "api", ], optional = true } moosicbox_player = { version = "0.1.0", path = "../player", default-features = false, features = [ "local", ], optional = true } moosicbox_qobuz = { version = "0.1.0", path = "../qobuz", default-features = false, features = [ "api", "db", ], optional = true } moosicbox_scan = { version = "0.1.0", path = "../scan", default-features = false, features = [ "api", "local", ], optional = true } moosicbox_search = { version = "0.1.0", path = "../search", default-features = false, features = [ "api", ], optional = true } moosicbox_tidal = { version = "0.1.0", path = "../tidal", default-features = false, features = [ "api", "db", ], optional = true } moosicbox_upnp = { version = "0.1.0", path = "../upnp", optional = true, default-features = false, features = [ "api", "listener", "player", ] } moosicbox_yt = { version = "0.1.0", path = "../yt", default-features = false, features = [ "api", "db", ], optional = true } # Tunnel dependencies moosicbox_tunnel = { version = "0.1.0", path = "../tunnel", optional = true, default-features = false } moosicbox_tunnel_sender = { version = "0.1.0", path = "../tunnel_sender", optional = true, default-features = false } utoipa = { workspace = true, optional = true } utoipa-rapidoc = { workspace = true, optional = true } utoipa-redoc = { workspace = true, optional = true } utoipa-scalar = { workspace = true, optional = true } utoipa-swagger-ui = { workspace = true, optional = true } # auth qstring = { workspace = true, optional = true } # TLS rcgen = { workspace = true, optional = true } actix-cors = { workspace = true } actix-htmx = { workspace = true, optional = true } actix-web = { workspace = true } actix-ws = { workspace = true } console-subscriber = { workspace = true } flume = { workspace = true } futures-util = { workspace = true } kanal = { workspace = true } local-ip-address = { workspace = true } log = { workspace = true } openssl = { workspace = true, optional = true } rand = { workspace = true } serde_json = { workspace = true } strum = { workspace = true } strum_macros = { workspace = true } thiserror = { workspace = true } throttle = { workspace = true, optional = true } tokio = { workspace = true, features = ["macros", "rt", "time", "tracing"] } tokio-util = { workspace = true } url = { workspace = true } [features] default = [ "all-apis", "all-formats", "base64", "cpal", "openapi", "postgres-native-tls", "postgres-openssl", "postgres-raw", "postgres-sqlx", "pulseaudio", "sqlite-sqlx", "static-token-auth", "tunnel", ] fail-on-warnings = [] tls = ["actix-web/openssl", "dep:openssl", "dep:rcgen"] base64 = ["moosicbox_tunnel?/base64", "moosicbox_tunnel_sender?/base64"] tunnel = [ "dep:moosicbox_auth", "dep:moosicbox_tunnel", "dep:moosicbox_tunnel_sender", ] # Player audio outputs asio = ["moosicbox_player?/asio"] cpal = ["moosicbox_player?/cpal"] jack = ["moosicbox_player?/jack"] pulseaudio = ["moosicbox_player?/pulseaudio"] pulseaudio-simple = ["moosicbox_player?/pulseaudio-simple"] pulseaudio-standard = ["moosicbox_player?/pulseaudio-standard"] static-token-auth = ["dep:qstring"] all-formats = ["aac", "flac", "mp3", "opus"] aac = [ "moosicbox_core/aac", "moosicbox_downloader?/aac", "moosicbox_files/aac", "moosicbox_library?/aac", "moosicbox_library?/aac", "moosicbox_player?/aac", "moosicbox_scan?/aac", "moosicbox_session/aac", "moosicbox_session/aac", "moosicbox_tunnel_sender?/aac", ] flac = [ "moosicbox_core/flac", "moosicbox_downloader?/flac", "moosicbox_files/flac", "moosicbox_library?/flac", "moosicbox_library?/flac", "moosicbox_player?/flac", "moosicbox_scan?/flac", "moosicbox_session/flac", "moosicbox_session/flac", "moosicbox_tunnel_sender?/flac", ] mp3 = [ "moosicbox_core/mp3", "moosicbox_downloader?/mp3", "moosicbox_files/mp3", "moosicbox_library?/mp3", "moosicbox_library?/mp3", "moosicbox_player?/mp3", "moosicbox_scan?/mp3", "moosicbox_session/mp3", "moosicbox_session/mp3", "moosicbox_tunnel_sender?/mp3", ] opus = [ "moosicbox_core/opus", "moosicbox_downloader?/opus", "moosicbox_files/opus", "moosicbox_library?/opus", "moosicbox_library?/opus", "moosicbox_player?/opus", "moosicbox_scan?/opus", "moosicbox_session/opus", "moosicbox_session/opus", "moosicbox_tunnel_sender?/opus", ] postgres = [ "dep:moosicbox_schema", "moosicbox_database/postgres", "moosicbox_database_connection/creds", "moosicbox_database_connection/postgres", "moosicbox_schema?/postgres", ] postgres-native-tls = ["moosicbox_database_connection/postgres-native-tls"] postgres-openssl = ["moosicbox_database_connection/postgres-openssl"] postgres-raw = [ "moosicbox_database/postgres-raw", "moosicbox_database_connection/postgres-raw", "postgres", ] postgres-sqlx = [ "moosicbox_database/postgres-sqlx", "moosicbox_database_connection/postgres-sqlx", "postgres", ] sqlite = [ "dep:moosicbox_schema", "moosicbox_database_connection/sqlite", "moosicbox_schema?/sqlite", ] sqlite-rusqlite = [ "moosicbox_database/sqlite-rusqlite", "moosicbox_database_connection/sqlite-rusqlite", "sqlite", ] sqlite-sqlx = [ "moosicbox_database/sqlite-sqlx", "moosicbox_database_connection/sqlite-sqlx", "sqlite", ] admin-htmx = ["admin-htmx-api"] downloader = ["dep:throttle", "moosicbox_downloader/api"] library = ["moosicbox_library/api"] player = ["dep:moosicbox_library", "dep:moosicbox_player"] qobuz = ["moosicbox_qobuz/api"] scan = ["dep:throttle", "moosicbox_scan/api"] search = ["moosicbox_search/api"] tidal = ["moosicbox_tidal/api"] upnp = ["dep:moosicbox_upnp", "player"] yt = ["moosicbox_yt/api"] # APIs all-apis = ["app-apis", "player-api", "upnp-api"] app-apis = [ "admin-htmx-api", "audio-output-api", "audio-zone-api", "auth-api", "config-api", "downloader-api", "files-api", "library-api", "menu-api", "qobuz-api", "scan-api", "search-api", "session-api", "tidal-api", "yt-api", ] admin-htmx-api = [ "dep:actix-htmx", "dep:moosicbox_admin_htmx", "moosicbox_admin_htmx?/api", ] audio-output-api = ["moosicbox_audio_output/api"] audio-zone-api = ["moosicbox_audio_zone/api"] auth-api = ["dep:moosicbox_auth", "moosicbox_auth?/api"] config-api = [] downloader-api = ["dep:moosicbox_downloader", "downloader"] files-api = ["moosicbox_files/api"] library-api = ["dep:moosicbox_library", "library"] menu-api = ["dep:moosicbox_menu"] player-api = ["moosicbox_player?/api", "player"] qobuz-api = ["dep:moosicbox_qobuz", "qobuz"] scan-api = ["dep:moosicbox_scan", "scan"] search-api = ["dep:moosicbox_search", "search"] session-api = ["moosicbox_session/api"] tidal-api = ["dep:moosicbox_tidal", "tidal"] upnp-api = ["dep:moosicbox_upnp", "upnp"] yt-api = ["dep:moosicbox_yt", "yt"] openapi = [ "dep:utoipa", "dep:utoipa-rapidoc", "dep:utoipa-redoc", "dep:utoipa-scalar", "dep:utoipa-swagger-ui", "moosicbox_audio_output/openapi", "moosicbox_audio_zone/openapi", "moosicbox_auth?/openapi", "moosicbox_config/openapi", "moosicbox_core/openapi", "moosicbox_downloader?/openapi", "moosicbox_files/openapi", "moosicbox_library?/openapi", "moosicbox_menu?/openapi", "moosicbox_music_api/openapi", "moosicbox_player?/openapi", "moosicbox_qobuz?/openapi", "moosicbox_scan?/openapi", "moosicbox_search?/openapi", "moosicbox_session/openapi", "moosicbox_tidal?/openapi", "moosicbox_upnp?/openapi", "moosicbox_yt?/openapi", ]