[package]
name = "rusty-pee"
version = "0.1.0"
edition = "2024"
rust-version = "1.85"
authors = ["James Han <jsh562@users.noreply.github.com>"]
license = "MIT OR Apache-2.0"
description = "Fan stdin out to N concurrent shell-spawned children — a Rust port of moreutils `pee` with strict-compat mode, exit-code aggregation (Default max / Strict bitwise OR), backpressure-paced byte-perfect delivery, and a typed library API."
repository = "https://github.com/jsh562/rusty-pee"
homepage = "https://github.com/jsh562/rusty-pee"
documentation = "https://docs.rs/rusty-pee"
readme = "README.md"
keywords = ["pee", "moreutils", "tee", "pipe", "cli"]
categories = ["command-line-utilities"]
[features]
default = ["cli"]
cli = ["dep:clap", "dep:clap_complete", "dep:anyhow", "dep:signal-hook"]
pee-alias = ["cli"]
bench = ["dep:criterion"]
dev-helpers = []
[dependencies]
thiserror = "2"
clap = { version = "4", features = ["derive", "env"], optional = true }
clap_complete = { version = "4", optional = true }
anyhow = { version = "1", optional = true }
signal-hook = { version = "0.3", optional = true }
criterion = { version = "0.5", optional = true }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.59", features = [
"Win32_Foundation",
"Win32_System_Console",
"Win32_System_Threading",
"Win32_Security",
] }
[dev-dependencies]
insta = { version = "1", features = ["yaml"] }
assert_cmd = "2"
predicates = "3"
tempfile = "3"
static_assertions = "1"
[target.'cfg(target_os = "linux")'.dev-dependencies]
libc = "0.2"
[[bin]]
name = "rusty-pee"
path = "src/main.rs"
required-features = ["cli"]
[[bin]]
name = "pee"
path = "src/bin/pee.rs"
required-features = ["pee-alias"]
[[bin]]
name = "fake-pee-child"
path = "tests/bin/fake_pee_child.rs"
required-features = ["dev-helpers"]
test = false
doctest = false
bench = false
[[bench]]
name = "throughput"
harness = false
required-features = ["bench"]
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-{ target }{ archive-suffix }"
bin-dir = "{ name }-v{ version }-{ target }/{ bin }{ binary-ext }"
pkg-fmt = "tgz"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"