[package]
name = "spades"
version = "1.2.8"
authors = ["William <limwilliam23@gmail.com>"]
repository = "https://github.com/wlim33/rust-spades"
categories = ["games", "game-engines", "simulation"]
keywords = ["spades", "cards", "state", "machine"]
readme = "./README.md"
license = "MIT"
description = "A popular four person card game implemented in Rust."
edition = "2024"

[badges]
travis-ci = { repository = "wlim33/rust-spades", branch = "master" }

[dependencies]
rand = "0.8"
uuid = { version = "1.18", features = ["v4", "serde"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sqids = "0.4"

# Server dependencies (optional)
tokio = { version = "1.0", features = ["full"], optional = true }
axum = { version = "0.8", features = ["ws"], optional = true }
tower = { version = "0.5", optional = true }
tower-http = { version = "0.6", features = ["cors"], optional = true }
tokio-stream = { version = "0.1", optional = true }
futures-util = { version = "0.3", optional = true }
async-stream = { version = "0.3", optional = true }
rusqlite = { version = "0.32", features = ["bundled"], optional = true }
rustrict = { version = "0.7", optional = true }
tower-sessions = { version = "0.14", optional = true }
tower-sessions-sqlx-store = { version = "0.15", features = ["sqlite"], optional = true }
oasgen = { version = "0.25", features = ["axum", "uuid", "swagger-ui"], optional = true }
time = { version = "0.3", optional = true }

[features]
default = []
server = ["tokio", "axum", "tower", "tower-http", "tokio-stream", "futures-util", "async-stream", "rusqlite", "rustrict", "tower-sessions", "tower-sessions-sqlx-store", "time", "oasgen"]

[dev-dependencies]
axum-test = "18"
ntest = "0.9"


[[bin]]
name = "spades-server"
path = "src/bin/server.rs"
required-features = ["server"]
