[workspace]
members = ["framework/common", "dispatch", "gateserver", "kcp", "hk4e_proto", "sdkserver", "dbgate", "gameserver", "hk4e_data"]
resolver = "2"

[workspace.package]
version = "0.1.0"

[workspace.dependencies]
thiserror = "1.0.61"
bytes = "1.6.0"

axum = "0.7.4"
axum-server = "0.6.0"

sqlx = { version = "0.7.4", features = ["postgres", "runtime-tokio-rustls"] }
redis = { version = "0.25.4", features = ["aio", "tokio-comp"] }
zeromq = "0.4.0"

env_logger = "0.11.3"

rbase64 = "2.0.3"
rand = "0.8.5"
rand_mt = "4.2.2"
rsa = { version = "0.9.6", features = [
	"sha1",
	"nightly",
	"pkcs5",
	"serde",
	"sha2",
] }

prost = "0.12.3"
prost-types = "0.12.3"
prost-build = "0.12.3"

dashmap = "6.0.1"
paste = "1.0.14"
sysinfo = "0.30.7"

hex = "0.4.3"

csv = "1.3.0"
num_enum = "0.7.3"
serde = { version = "1.0.197", features = ["derive"] }
serde_json = "1.0.114"

parking_lot = "0.12.3"
tokio = { version = "1.36.0", features = ["full"] }
tokio-util = { version = "0.7.10", features = ["io"] }

tracing = "0.1.40"
tracing-futures = "0.2.5"
tracing-log = { version = "0.2.0", features = ["std", "log-tracer"] }
tracing-subscriber = { version = "0.3.18", features = [
	"env-filter",
	"registry",
	"std",
	"tracing",
	"tracing-log",
] }
tracing-bunyan-formatter = "0.3.9"
toml = "0.8.14"

proto = { path = "hk4e_proto/" }
proto_gen = { path = "hk4e_proto/proto_gen/" }
data = { path = "hk4e_data/" }
common = { path = "framework/common/" }
mhy-kcp = { path = "kcp/", features = ["tokio"] }

[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.
