[package]
authors = ["The Nushell Project Developers"]
description = "Nushell's internal protocols, including its abstract syntax tree"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-protocol"
edition = "2024"
license = "MIT"
name = "nu-protocol"
version = "0.105.2"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[lib]
bench = false

[lints]
workspace = true

[dependencies]
nu-utils = { path = "../nu-utils", version = "0.105.2", default-features = false }
nu-glob = { path = "../nu-glob", version = "0.105.2" }
nu-path = { path = "../nu-path", version = "0.105.2" }
nu-system = { path = "../nu-system", version = "0.105.2" }
nu-derive-value = { path = "../nu-derive-value", version = "0.105.2" }

brotli = { workspace = true, optional = true }
bytes = { workspace = true }
chrono = { workspace = true, features = ["serde", "std", "unstable-locales"], default-features = false }
chrono-humanize = { workspace = true }
dirs = { workspace = true }
fancy-regex = { workspace = true }
heck = { workspace = true }
indexmap = { workspace = true }
lru = { workspace = true }
miette = { workspace = true, features = ["fancy-no-backtrace"] }
num-format = { workspace = true }
rmp-serde = { workspace = true, optional = true }
serde = { workspace = true }
serde_json = { workspace = true }
strum = { workspace = true }
strum_macros = { workspace = true }
thiserror = "2.0.12"
typetag = "0.2"
os_pipe = { workspace = true, optional = true, features = ["io_safety"] }
log = { workspace = true }
web-time = { workspace = true }
memchr = { workspace = true }

[target.'cfg(unix)'.dependencies]
nix = { workspace = true, default-features = false, features = ["signal"] }

[target.'cfg(windows)'.dependencies]
dirs-sys = { workspace = true }
windows-sys = { workspace = true }
windows = { workspace = true }

[features]
default = ["os"]
os = [
  "nu-utils/os",
  "os_pipe",
]

plugin = [
  "brotli",
  "os",
  "rmp-serde",
]

[dev-dependencies]
serde_json = { workspace = true }
nu-test-support = { path = "../nu-test-support", version = "0.105.2" }
nu-utils = { path = "../nu-utils", version = "0.105.2" }
pretty_assertions = { workspace = true }
rstest = { workspace = true }
tempfile = { workspace = true }
os_pipe = { workspace = true }

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