[workspace]
members = ["wicked-waifus-asset-updater", "wicked-waifus-commons", "wicked-waifus-config-server", "wicked-waifus-hotpatch-server", "wicked-waifus-login-server", "wicked-waifus-gateway-server", "wicked-waifus-gateway-server/kcp", "wicked-waifus-database", "wicked-waifus-http", "wicked-waifus-protokey", "wicked-waifus-protocol-internal", "wicked-waifus-game-server", "wicked-waifus-network", "wicked-waifus-data"]
resolver = "2"

[workspace.package]
version = "0.1.0"

[workspace.dependencies]
# Framework
tokio = { version = "1.39.3", features = ["full"] }
tower-http = { version = "0.6.1", features = ["fs", "trace"] }
axum = "0.7.5"
axum-server = "0.7.1"
zeromq = { version = "0.4.0", default-features = false, features = ["tokio-runtime", "tcp-transport"] }

# Database
sqlx = { version = "0.8.2", features = ["postgres", "runtime-tokio-rustls"] }

# Cryptography
aes = "0.8.4"
cbc = { version = "0.1.2", features = ["alloc"] }
cipher = "0.4.4"
crc32fast = "1.4.2"
rand = "0.8.5"
rsa = { version = "0.9.6", features = ["pem"] }

# Serialization
serde = { version = "1.0.209", features = ["derive"] }
serde_json = "1.0.128"
serde_repr = "0.1.19"
toml = "0.8.19"
prost = "0.13.2"
prost-build = "0.13.2"

# Utility
anyhow = "1.0.86"
thiserror = "1.0.63"
paste = "1.0.15"
rbase64 = "2.0.3"
dashmap = "6.1.0"
hex = "0.4.3"
byteorder = "1.5.0"

# Tracing
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }

# Internal
kcp = { path = "wicked-waifus-gateway-server/kcp" }
wicked-waifus-asset-updater = { path = "wicked-waifus-asset-updater" }
wicked-waifus-commons = { path = "wicked-waifus-commons" }
wicked-waifus-http = { path = "wicked-waifus-http" }
wicked-waifus-data = { path = "wicked-waifus-data" }
wicked-waifus-database = { path = "wicked-waifus-database" }
wicked-waifus-network = { path = "wicked-waifus-network" }
wicked-waifus-protocol-internal = { path = "wicked-waifus-protocol-internal" }
wicked-waifus-protokey = { path = "wicked-waifus-protokey" }

wicked-waifus-protocol = { git = "https://git.xeondev.com/wickedwaifus/wicked-waifus-proto" }
wicked-waifus-protocol-derive = { git = "https://git.xeondev.com/wickedwaifus/wicked-waifus-proto" }

[profile.release]
strip = true      # Automatically strip symbols from the binary.
lto = true        # Link-time optimization.
opt-level = 3     # Optimize for speed.
codegen-units = 1 # Maximum size reduction optimizations.
