[package]
name = "libtmux"
version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
description = "Async typed tmux client and object model (alpha)"
documentation = "https://docs.rs/libtmux"
repository.workspace = true
readme = "README.md"
license.workspace = true
keywords = ["tmux", "terminal", "multiplexer", "async", "tokio"]
categories = ["api-bindings", "asynchronous", "os::unix-apis"]
include = [
"/Cargo.toml",
"/LICENSE-APACHE",
"/LICENSE-MIT",
"/README.md",
"/docs/design.md",
"/docs/parity.md",
"/benches/**/*.rs",
"/examples/**/*.rs",
"/schema/**/*.json",
"/src/**/*.rs",
"/tests/fixtures/filter-v1/*.json",
"/tests/fixtures/dialect-v1/*.json",
"/tests/**/*.rs",
]
[lib]
path = "src/lib.rs"
[[example]]
name = "scratch"
required-features = ["test-support"]
[[example]]
name = "find"
required-features = ["query"]
[[example]]
name = "sweep"
required-features = ["test-support"]
[[example]]
name = "matrix"
required-features = ["plan", "control-mode", "blocking", "test-support", "query"]
[[bench]]
name = "hierarchy"
harness = false
required-features = ["test-support"]
[[test]]
name = "filter_derive"
path = "tests/filter_derive.rs"
required-features = ["derive"]
[[test]]
name = "filter_serde"
path = "tests/filter_serde.rs"
[features]
default = ["query"]
full = ["blocking", "control-mode", "derive", "plan", "query", "serde", "tracing"]
unstable-fuzzing = ["control-mode", "query", "serde"]
blocking = ["tokio/rt"]
control-mode = ["dep:futures-core", "tokio/io-util", "tokio/process", "tokio/sync"]
derive = ["dep:libtmux-macros", "query"]
plan = []
query = ["dep:caseless", "dep:regex"]
serde = ["dep:serde"]
test-support = ["dep:tempfile", "rustix/fs", "rustix/net"]
tracing = ["dep:tracing"]
[dependencies]
caseless = { version = "0.2", optional = true }
futures-core = { version = "0.3", optional = true }
libtmux-macros = { workspace = true, optional = true }
regex = { version = "1.13", optional = true }
rustix = { version = "1.1.4", features = ["process"] }
serde = { workspace = true, optional = true }
tempfile = { workspace = true, optional = true }
thiserror.workspace = true
tokio = { workspace = true, features = ["io-util", "macros", "process", "rt", "sync", "time"] }
tracing = { version = "0.1.29", optional = true }
[dev-dependencies]
criterion = { version = "0.7.0", features = ["async_tokio"] }
futures-core = "0.3"
jsonschema = { version = "=0.49.9", default-features = false }
serde_json.workspace = true
static_assertions = "1.1.0"
tempfile.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
tokio-stream = "0.1.19"
tracing-subscriber = "0.3.23"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true