[workspace] resolver = "2" members = [ "crates/chattyness-db", "crates/chattyness-error", "crates/chattyness-shared", "crates/chattyness-admin-ui", "crates/chattyness-user-ui", "apps/chattyness-owner", "apps/chattyness-app", ] exclude = ["chattyness-webserver"] [workspace.package] version = "0.1.0" edition = "2024" license = "MIT" repository = "https://github.com/your-org/chattyness" [workspace.dependencies] # Internal crates chattyness-db = { path = "crates/chattyness-db" } chattyness-error = { path = "crates/chattyness-error" } chattyness-shared = { path = "crates/chattyness-shared" } chattyness-admin-ui = { path = "crates/chattyness-admin-ui" } chattyness-user-ui = { path = "crates/chattyness-user-ui" } # Leptos framework leptos = "0.8" leptos_meta = "0.8" leptos_router = "0.8" leptos_axum = "0.8" # Axum web server axum = { version = "0.8", features = ["macros", "ws"] } axum-extra = { version = "0.10", features = ["multipart"] } tower = "0.5" tower-http = { version = "0.6", features = ["fs", "compression-gzip"] } # Session management tower-sessions = "0.14" tower-sessions-sqlx-store = { version = "0.15", features = ["postgres"] } # Database sqlx = { version = "0.8", features = [ "runtime-tokio", "tls-rustls", "postgres", "uuid", "chrono", "json" ] } # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" # Error handling thiserror = "2" # Enum utilities strum = { version = "0.26", features = ["derive"] } # CLI clap = { version = "4", features = ["derive", "env"] } # Async runtime tokio = { version = "1", features = ["full"] } futures = "0.3" # Concurrent data structures dashmap = "6" # Configuration toml = "0.8" # Utilities uuid = { version = "1", features = ["v4", "serde", "js"] } chrono = { version = "0.4", features = ["serde"] } dotenvy = "0.15" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } http = "1" regex = "1" # Password hashing argon2 = "0.5" # Image processing image = { version = "0.25", default-features = false, features = ["jpeg", "png", "gif", "webp"] } reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] } # Random token generation rand = "0.8" sha2 = "0.10" hex = "0.4" # WASM dependencies console_error_panic_hook = "0.1" wasm-bindgen = "0.2" gloo-net = "0.6" gloo-timers = "0.3" urlencoding = "2" web-sys = { version = "0.3", features = [ "Blob", "CanvasRenderingContext2d", "CloseEvent", "Document", "DomRect", "Element", "ErrorEvent", "EventTarget", "File", "FileList", "FormData", "HtmlCanvasElement", "HtmlCollection", "HtmlElement", "HtmlFormElement", "HtmlImageElement", "HtmlInputElement", "ImageData", "KeyboardEvent", "Location", "MessageEvent", "MouseEvent", "Node", "Storage", "TextMetrics", "WebSocket", "Window", ] } js-sys = "0.3" [profile.release] lto = true opt-level = 'z' codegen-units = 1