[workspace] resolver = "2" # This block defines the workspace members. # When we add a library or binary crate, it needs an entry here. members = [ # Types: common strongly-typed tokens, ids, payloads, etc. "crates/_types/composite_identifiers", "crates/_types/enums", "crates/_types/enums_public", "crates/_types/reusable_types", # TODO(bt, 2022-12-21): Deprecate "crates/_types/tokens", # CLI tools for operations, etc. "crates/cli/devenv/dev-database-seed", "crates/cli/devenv/dev-upload-media-file", "crates/cli/devenv/scrape-test", "crates/cli/production/db-backfill", "crates/cli/production/db-backup", "crates/cli/production/db-cleanup", "crates/cli/production/elasticsearch-cli", "crates/cli/production/kubectl-pod-cleanup", "crates/cli/production/lru-delete-models", "crates/cli/production/migration-tool", # Desktop apps "crates/desktop/tauri-artcraft", "crates/desktop/tauri-realtime", # Shared libraries "crates/lib/actix_cors_configs", "crates/lib/actix_helpers", "crates/lib/api_clients/cloud_storage", "crates/lib/api_clients/google_drive_common", "crates/lib/api_clients/google_sign_in", "crates/lib/api_clients/openai_sora_client", "crates/lib/api_clients/storyteller_client", "crates/lib/api_clients/thumbnail_generator", "crates/lib/bootstrap", "crates/lib/bucket_paths", "crates/lib/caching/memory_caching", "crates/lib/caching/memory_store", "crates/lib/caching/redis_caching", "crates/lib/concurrency", "crates/lib/cookies", "crates/lib/data/collections", "crates/lib/data/crockford", "crates/lib/data/datetimes", "crates/lib/data/primitives", "crates/lib/deprecated/config", # TODO(bt, 2023-02-13): Deprecate or repurpose "crates/lib/deprecated/http_server_common", # TODO(bt, 2023-03-20): Move useful pieces to actix_helpers "crates/lib/dimensions", "crates/lib/easyenv", # NB: Vendored version of https://github.com/echelon/easyenv.rs that we'll improve. "crates/lib/elasticsearch_schema", "crates/lib/email_sender", "crates/lib/errors", "crates/lib/files/archives", "crates/lib/files/filesys", "crates/lib/files/hashing", "crates/lib/files/images", "crates/lib/files/media", "crates/lib/files/mimetypes", "crates/lib/files/videos", "crates/lib/idempotency", "crates/lib/image_algorithms", "crates/lib/jobs_common", "crates/lib/logging", "crates/lib/machine_learning/ml_models", "crates/lib/machine_learning/ml_weights_registry", "crates/lib/machine_learning/prompt_engineering", "crates/lib/markdown", "crates/lib/migration", "crates/lib/mysql_queries", "crates/lib/password", "crates/lib/redis_common", "crates/lib/redis_schema", "crates/lib/server_environment", "crates/lib/shared_service_components", "crates/lib/sqlx_mysql_helpers", "crates/lib/storyteller_root", "crates/lib/subprocess_common", "crates/lib/testing", "crates/lib/tts_common", "crates/lib/url_config", "crates/lib/user_input_common", "crates/lib/web_scrapers", #"crates/lib/api_clients/fakeyou_client", #"crates/lib/sqlite_queries", # Services: API servers, jobs, workers, etc. "crates/service/job/analytics_job", "crates/service/job/download_job", "crates/service/job/email_sender_job", "crates/service/job/es-update-job", "crates/service/job/inference_job", "crates/service/job/tts_download_job", "crates/service/job/tts_inference_job", "crates/service/job/w2l_download_job", "crates/service/job/w2l_inference_job", "crates/service/web/dummy_service", "crates/service/web/storyteller_web", # Service Plugins: complete subsystems that can be plugged into services (users, billing, etc.) "crates/service/plugins/billing", "crates/service/plugins/inference_workloads", "crates/service/plugins/user_traits_component", # Vendored code "crates/vendor/candle/candle-core", "crates/vendor/candle/candle-datasets", "crates/vendor/candle/candle-examples", "crates/vendor/candle/candle-flash-attn", "crates/vendor/candle/candle-kernels", "crates/vendor/candle/candle-metal-kernels", "crates/vendor/candle/candle-nn", "crates/vendor/candle/candle-onnx", "crates/vendor/candle/candle-pyo3", "crates/vendor/candle/candle-transformers", "crates/vendor/candle/tensor-tools", "crates/vendor/limitation", "crates/vendor/tauri-plugin-http", # NB(bt,2023-12-12): Newrelic keeps breaking with upgrades. Kill for now. #"crates/vendor/newrelic-telemetry-sdk-rust", # cargo-hakari workspace hack (compilation speedup hack) # see usage: https://crates.io/crates/cargo-hakari "crates/workspace-build-acceleration", ] [workspace.package] # Common inheritable settings for monorepo packages publish = false [workspace.dependencies] # Hakari workspace hack (faster compile times) # # If an unrelated leaf package starts causing general build problems, # for packages including hakari, look up what depends on the bad package: # # `cargo tree --target all -p {BAD_PACKAGE_NAME} -i` # # Packages to remove from hakari to ensure we can build in Netlify, # Github Actions (without package installs), etc.: # # - cudarc # - esaxx-rs # - ort # - tauri # - tauri-runtime-wry # - tauri-utils # # Broken on Windows: # - core-foundation # - core-foundation-sys # workspace-build-acceleration = { path = "crates/workspace-build-acceleration" } # External libs # Centrally pinned versions so that we can uniformly upgrade/downgrade versions across the workspace # If a crate needs to use an older/newer version, the dependency should be managed in that crate's own Cargo.toml anyhow = "1.0.97" base64 = "0.22.1" chrono = { version = "0.4.40", features = ["serde"] } cookie = "0.18.1" hex-literal = "1.0.0" indexmap = "2.9.0" log = "0.4.27" once_cell = "1.21.3" rand = "0.9.0" regex = "1.11.1" reqwest = { version = "0.12.15", features = ["json", "cookies"] } serde = { version = "1.0.219", features = ["derive"] } serde_derive = "1.0.219" serde_json = "1.0.140" serde_yaml = "0.9.1" sha3 = "0.10.8" tauri = { version = "2.4.1", features = ["unstable"] } thiserror = "2.0.12" toml = "0.8.20" url = { version = "2.5.4", features = ["serde"] } # Internal libs crockford = { path = "crates/lib/data/crockford" } enums = { path = "crates/_types/enums" } enums_public = { path = "crates/_types/enums_public" } errors = { path = "crates/lib/errors" } filesys = { path = "crates/lib/files/filesys" } idempotency = { path = "crates/lib/idempotency" } images = { path = "crates/lib/files/images" } memory_caching = { path = "crates/lib/caching/memory_caching" } memory_store = { path = "crates/lib/caching/memory_store" } mimetypes = { path = "crates/lib/files/mimetypes" } openai_sora_client = { path = "crates/lib/api_clients/openai_sora_client" } primitives = { path = "crates/lib/data/primitives" } shared_service_components = { path = "crates/lib/shared_service_components" } storyteller_client = { path = "crates/lib/api_clients/storyteller_client" } subprocess_common = { path = "crates/lib/subprocess_common" } tokens = { path = "crates/_types/tokens" }