[package]
name = "rust-expect"
description = "Next-generation Expect-style terminal automation library for Rust"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "README.md"
[lints]
workspace = true
[dependencies]
rust-pty.workspace = true
rust-expect-macros.workspace = true
tokio.workspace = true
regex.workspace = true
memchr = "2"
thiserror.workspace = true
tracing.workspace = true
serde_json.workspace = true
rand.workspace = true
futures.workspace = true
bytes.workspace = true
libc.workspace = true
bitflags = { workspace = true, optional = true }
russh = { workspace = true, optional = true }
opentelemetry = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }
opentelemetry-otlp = { workspace = true, optional = true }
tracing-opentelemetry = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, optional = true }
prometheus = { workspace = true, optional = true }
[target.'cfg(windows)'.dependencies]
windows-sys.workspace = true
[dev-dependencies]
proptest.workspace = true
criterion.workspace = true
expectrl.workspace = true
tempfile = "3"
[[bench]]
name = "pattern_matching"
harness = false
[[bench]]
name = "screen_buffer"
harness = false
[[bench]]
name = "comparative"
harness = false
[features]
default = []
ssh = ["dep:russh"]
mock = []
screen = ["dep:bitflags"]
pii-redaction = []
legacy-encoding = []
metrics = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:tracing-opentelemetry",
"dep:tracing-subscriber",
"dep:prometheus",
]
test-utils = []
insecure-skip-verify = []
full = ["ssh", "mock", "screen", "pii-redaction", "metrics"]
[[example]]
name = "drive_htop"
required-features = ["screen"]
[[example]]
name = "drive_less"
required-features = ["screen"]