[package]
name = "mkutils"
version.workspace = true
edition.workspace = true
description.workspace = true
readme.workspace = true
repository.workspace = true
license.workspace = true
keywords.workspace = true
categories.workspace = true

[dependencies]
anyhow = { version = "1.0.100" }
arrayvec = { version = "0.7.6", optional = true }
bytes = { version = "1.10.1" }
camino = { version = "1.2.1" }
console-subscriber = { version = "0.4.1", optional = true }
crossterm = { version = "0.29.0", features = ["event-stream", "libc", "serde", "use-dev-tty"], optional = true }
derive_more = { version = "2.0.1", features = ["add", "constructor", "from", "into", "is_variant", "mul"] }
either = "1.16.0"
futures = { version = "0.3.31", optional = true }
getset = "0.1.6"
home = { version = "0.5.12" }
mkutils-macros = { workspace = true }
num = { version = "0.4.3" }
palette = { version = "0.7.6", optional = true }
paste = "1.0.15"
poem = { version = "3.1.12", features = ["anyhow", "websocket"], optional = true }
poem-openapi = { version = "5.1.16", features = ["websocket"], optional = true }
ratatui = { version = "0.30.0", features = ["crossterm_0_29", "unstable-backend-writer"], optional = true }
reqwest = { version = "0.12.23", features = ["json"], optional = true }
rmp-serde = { version = "1.3.0", optional = true }
serde = { version = "1.0.226", features = ["derive"] }
serde_json = { version = "1.0.145", optional = true }
serde_yaml_ng = { version = "0.10.0", optional = true }
shellexpand = { version = "3.1.1" }
tokio = { version = "1.47.1", features = ["fs", "io-std", "io-util", "macros", "net", "process", "rt"], optional = true }
tokio-stream = { version = "0.1.17", features = ["io-util", "sync"], optional = true }
tokio-util = { version = "0.7.16", features = ["codec", "io"], optional = true }
tracing = { version = "0.1.41", features = ["valuable"], optional = true }
tracing-subscriber = { version = "0.3.20", features = ["json", "valuable"], optional = true }
tree-sitter = { version = "0.26.9", optional = true }
tree-sitter-highlight = { version = "0.26.9", optional = true }
trie-rs = { version = "0.4.2", optional = true }
tuplities-remove = { version = "0.1.4" }
typenum = { version = "1.19.0" }
ulid = "1.2.1"
unicode-segmentation = { version = "1.12.0", optional = true }
valuable = { version = "0.1.1", optional = true }
zed-sum-tree = { version = "0.2.0", optional = true }

[features]
async = ["dep:futures", "dep:tokio", "dep:tokio-stream", "dep:tokio-util"]
http = ["dep:poem", "dep:poem-openapi", "dep:reqwest" ]
serde = ["dep:rmp-serde", "dep:serde_json", "dep:serde_yaml_ng"]
tracing = ["dep:console-subscriber", "dep:tracing", "dep:tracing-subscriber", "dep:valuable"]
tui = ["dep:arrayvec", "dep:crossterm", "dep:palette", "dep:ratatui", "dep:tokio", "dep:tracing", "dep:tree-sitter", "dep:tree-sitter-highlight", "dep:trie-rs", "dep:unicode-segmentation", "dep:zed-sum-tree"]
unstable = []

[lints]
workspace = true

[dev-dependencies]
tokio-test = "0.4.5"

[package.metadata.docs.rs]
all-features = true
