[workspace]
members = ["gameserver", "proto", "sdkserver", "common"]
resolver = "3"

[workspace.package]
version = "0.1.0"

[workspace.dependencies]
# Framework
tokio = { version = "1.36.0", features = ["full"] }
axum = "0.8.1"
axum-server = "0.7.1"
tower-http = "0.6.2"

# JSON 
serde = { version = "1.0.197", features = ["derive"] }
serde_json = "1.0.114"

# Logging
tracing = "0.1.40"
ansi_term = "0.12.1"
env_logger = "0.11.3"

# Cryptography
rsa = { version = "0.9.6", features = [
	"sha1",
	"nightly",
	"pkcs5",
	"serde",
	"sha2",
] }
rand = "0.9.0"

# Serialization
prost = "0.13.5"
prost-types = "0.13.5"
prost-build = "0.13.5"
rbase64 = "2.0.3"

# Utilities
paste = "1.0.14"
notify = "8.0.0"
notify-debouncer-mini = "0.6.0"
anyhow = "1.0.81"

# Local
proto = { path = "proto/" }
proto-derive = { path = "proto/proto-derive" }
mhy-kcp = { path = "kcp/", features = ["tokio"] }
common = { path = "common/" }
sdkserver = { path = "sdkserver/"}
gameserver = { path = "gameserver/"}

[profile.release]
strip = true      # Automatically strip symbols from the binary.
opt-level = "z"   # Optimize for size.
lto = true
codegen-units = 1
