[workspace]
members = [
    ".",
    "crates/core",
    "crates/net",
    "crates/protocol",
    "crates/tui",
]

[workspace.dependencies]
hoy-core = { version = "0.2.1", path = "crates/core" }
hoy-net = { version = "0.2.1", path = "crates/net"}
hoy-protocol = { version = "0.2.0", path = "crates/protocol"}
hoy-tui = { version = "0.1.0", path = "crates/tui" }
hoy-test = { version = "0.1.1", path = "crates/test" }
thiserror = "2.0.18"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "io-util", "sync", "time"] }
sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] }
clap = { version = "4", features = ["derive"] }
directories = "6"

[workspace.package]
authors = ["mrbya <v.toth.svk2@gmail.com>"]
edition = "2024"
rust-version = "1.85.0"
description = "Real-time messaging TUI app"
# documentation = ""
homepage = "https://gitlab.com/byacrates/hoy.git"
repository = "https://gitlab.com/byacrates/hoy.git"
license = "MIT OR Apache-2.0"
keywords = ["hoy", "chat"]
categories = ["command-line-utilities"]

[package]
name = "hoy"
version = "0.3.0"
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
# documentation.workspace = true
homepage.workspace = true
repository.workspace = true
license.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Real-time messaging TUI app"

publish = true

[[bin]]
name = "hoy"
path = "src/main.rs"

[features]
full = []

[dependencies]
tokio.workspace = true
hoy-core.workspace = true
hoy-net.workspace = true
hoy-protocol.workspace = true
hoy-tui.workspace = true
thiserror.workspace = true
serde_json.workspace = true

[dev-dependencies]
criterion = "0.8"
pretty_assertions = "1"

[package.metadata.cargo-udeps.ignore]
normal = ["hoy-tui"]
development = ["criterion", "pretty_assertions"]

[package.metadata.playground]
features = ["full"]

[profile.release]
codegen-units = 1
incremental = false

[profile.bench]
codegen-units = 1
incremental = false

[lints.clippy]
multiple_crate_versions = "allow"

[[bench]]
name = "benches"
harness = false
required-features = ["full"]
