[workspace] resolver = "2" # Desktop application and its local build/test dependencies. members = [ "crates/api_clients/artcraft/artcraft_api_defs", "crates/api_clients/artcraft/artcraft_client", "crates/api_clients/artcraft/artcraft_router", "crates/api_clients/fal_client", "crates/api_clients/gmicloud_client", "crates/api_clients/grok_api_client", "crates/api_clients/grok_consumer_client", "crates/api_clients/kinovi_web_client", "crates/api_clients/midjourney_client", "crates/api_clients/openai_sora_client", "crates/api_clients/worldlabs_api_client", "crates/api_clients/worldlabs_consumer_client", "crates/desktop/artcraft", "crates/lib/browser_emulation", "crates/lib/build_metadata", "crates/lib/caching/memory_store", "crates/lib/cloudflare_errors", "crates/lib/cloudflare_mitigation", "crates/lib/cookie_store", "crates/lib/cookie_store_wrapper", "crates/lib/data/primitives", "crates/lib/data/web_base64", "crates/lib/errors", "crates/lib/files/file_to_base64_url", "crates/lib/files/filesys", "crates/lib/files/images", "crates/lib/files/mimetypes", "crates/lib/http_headers", "crates/lib/jwt_light", "crates/lib/url_utils", "crates/lib/uuid_utils", "crates/schema/database/sqlite_tasks", "crates/schema/public/enums", "crates/schema/public/tokens", "crates/testing/test_data", "crates/testing/test_utils", "crates/vendor/tauri-plugin-http", ] default-members = ["crates/desktop/artcraft"] [workspace.package] publish = false [workspace.dependencies] artcraft_api_defs = { path = "crates/api_clients/artcraft/artcraft_api_defs" } artcraft_client = { path = "crates/api_clients/artcraft/artcraft_client" } artcraft_router = { path = "crates/api_clients/artcraft/artcraft_router" } browser_emulation = { path = "crates/lib/browser_emulation" } cookie_store_wrapper = { path = "crates/lib/cookie_store_wrapper" } build_metadata = { path = "crates/lib/build_metadata" } cloudflare_errors = { path = "crates/lib/cloudflare_errors" } cloudflare_mitigation = { path = "crates/lib/cloudflare_mitigation" } cookie_store = { path = "crates/lib/cookie_store" } enums = { path = "crates/schema/public/enums" } errors = { path = "crates/lib/errors" } fal_client = { path = "crates/api_clients/fal_client" } gmicloud_client = { path = "crates/api_clients/gmicloud_client" } file_to_base64_url = { path = "crates/lib/files/file_to_base64_url" } filesys = { path = "crates/lib/files/filesys" } grok_api_client = { path = "crates/api_clients/grok_api_client" } grok_consumer_client = { path = "crates/api_clients/grok_consumer_client" } http_headers = { path = "crates/lib/http_headers" } images = { path = "crates/lib/files/images" } jwt_light = { path = "crates/lib/jwt_light" } memory_store = { path = "crates/lib/caching/memory_store" } midjourney_client = { path = "crates/api_clients/midjourney_client" } mimetypes = { path = "crates/lib/files/mimetypes" } openai_sora_client = { path = "crates/api_clients/openai_sora_client" } primitives = { path = "crates/lib/data/primitives" } kinovi_web_client = { path = "crates/api_clients/kinovi_web_client" } sqlite_tasks = { path = "crates/schema/database/sqlite_tasks" } test_data = { path = "crates/testing/test_data" } test_utils = { path = "crates/testing/test_utils" } tokens = { path = "crates/schema/public/tokens" } url_utils = { path = "crates/lib/url_utils" } uuid_utils = { path = "crates/lib/uuid_utils" } web_base64 = { path = "crates/lib/data/web_base64" } worldlabs_api_client = { path = "crates/api_clients/worldlabs_api_client" } worldlabs_consumer_client = { path = "crates/api_clients/worldlabs_consumer_client" } anyhow = "1.0.102" assertor = "0.0.3" base64 = "0.22.1" bstr = "1.12.1" byteorder = "1.5.0" chrono = { version = "0.4.44", features = ["serde"] } cookie = "0.18.1" env = "1.0.1" env_logger = "0.11.9" futures = { version = "0.3.32" } indexmap = "2.13.0" log = "0.4.29" once_cell = "1.21.4" rand = "0.9.1" regex = "1.12.3" reqwest = { version = "0.12.23", default-features = false, features = [ "charset", "http2", "system-proxy", "json", "cookies", "rustls-tls", "gzip" ] } serde = { version = "1.0.228", features = ["derive"] } serde_derive = "1.0.228" serde_json = "1.0.149" sha2 = "0.11.0-rc.5" sha3 = "0.10.8" strum = { version = "0.28.0", features = ["derive"] } tauri = { version = "2.11.2", features = ["unstable", "devtools", "protocol-asset"] } # NB: "devtools" prevents App Store distribution; "ubstable" is needed for window access tauri-plugin-dialog = "2.7.1" tauri-plugin-fs = "2.5.1" tauri-plugin-log = "2.8.0" tauri-plugin-upload = "2.4.0" tempdir = "0.3.7" tempfile = "3.27.0" thiserror = "2.0.18" tokio = { version = "1.50.0", features = ["macros"] } tokio-util = "0.7.12" toml = "1.0.7+spec-1.1.0" url = { version = "2.5.8", features = ["serde"] } utoipa = { version = "5.4.0", features = ["chrono", "actix_extras", "url"] } uuid = "1.22.0" walkdir = "2.4.0" # wreq native prerequisites: # macOS: brew install cmake pkg-config llvm # Windows: choco install cmake strawberryperl pkgconfiglite llvm nasm wreq-util = "3.0.0-rc.10" wreq = { version = "6.0.0-rc.28", features = ["json", "query", "form", "multipart", "cookies", "ws", "stream", "gzip", "brotli", "zstd", "deflate"] }