[workspace] members = [ "crates/core", "crates/tui", "crates/wasm", "crates/steam", "crates/server" ] resolver = "2" [workspace.package] version = "0.1.0" edition = "2021" authors = ["Your Name "] license = "MIT" description = "Competitive typing - solo practice, live races and code drills, in the terminal and the browser" [workspace.dependencies] # Core dependencies tokio = { version = "1.0", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" anyhow = "1.0" thiserror = "1.0" config = "0.13" dirs = "5.0" rlua = "0.19" rand = "0.8" # Terminal UI crossterm = "0.27" ratatui = "0.24" # Web/WASM wasm-bindgen = "0.2" js-sys = "0.3" web-sys = "0.3" wasm-bindgen-futures = "0.4" wasm-timer = "0.2" # Networking tokio-tungstenite = { version = "0.20", features = ["native-tls"] } futures-util = "0.3" # Backend server axum = { version = "0.7", features = ["ws"] } axum-extra = { version = "0.9", features = ["cookie"] } tower = "0.4" tower-http = { version = "0.5", features = ["cors", "trace", "set-header"] } # default-features off: the defaults pull the MySQL and SQLite drivers, and # with them rsa, which carries RUSTSEC-2023-0071. Only Postgres is used. sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio-rustls", "postgres", "macros", "migrate", "time", "uuid"] } argon2 = "0.5" # Already in the tree through argon2; declared directly because the Stripe # webhook signature check needs them by name. hmac = "0.12" sha2 = "0.10" subtle = "2.6" # 0.12 moves to hyper 1.x, which brings h2 0.4 and rustls 0.23 with it. # 0.11 was the sole source of every remaining advisory in the server build: # h2 0.3, rustls-webpki 0.101, rustls-pemfile 1.0 and idna 0.3. reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } uuid = { version = "1.10", features = ["v4", "serde"] } time = { version = "0.3", features = ["serde"] } dashmap = "6.1" dotenvy = "0.15" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } # Steam desktop client # Using full default features for now (guarantees DefaultPlugins resolves). # Trimming to a minimal feature set is a later optimization once this builds # cleanly - don't fight feature-flag mismatches without a compiler to check against. bevy = "0.19"