io-streams 0.12.0

Unbuffered and unlocked I/O streams
Documentation
[package]
name = "io-streams"
version = "0.12.0"
description = "Unbuffered and unlocked I/O streams"
authors = ["Dan Gohman <dev@sunfishcode.online>"]
edition = "2018"
license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
keywords = ["io"]
categories = ["rust-patterns"]
repository = "https://github.com/sunfishcode/io-streams"
exclude = ["/.github"]

[dependencies]
async-std = { version = "1.10.0", optional = true }
char-device = { version = "0.13.0", optional = true }
duplex = "0.13.0"
layered-io = { version = "0.14.0", optional = true }
memchr = "2.3.4"
parking = "2.0.0"
socketpair = { version = "0.16.0", optional = true }
system-interface = { version = "0.21.0", features = ["use_os_pipe", "socketpair"] }
terminal-io = { version = "0.14.0", optional = true }
tokio = { version = "1.8.1", optional = true, features = ["fs", "net"] }
io-extras = { version = "0.15.0", features = ["os_pipe"] }
utf8-io = { version = "0.13.0", optional = true }
io-lifetimes = { version = "0.7.0", default-features = false }

# WASI doesn't support pipes yet
[target.'cfg(not(target_os = "wasi"))'.dependencies]
os_pipe = "1.0.0"

[target.'cfg(not(windows))'.dependencies]
rustix = "0.35.6"

[dev-dependencies]
anyhow = "1.0.38"
cap-tempfile = "0.25.0"
char-device = "0.13.0"
duplex = { version = "0.13.0", features = ["char-device"] }

[features]
default = []
use_socketpair = ["socketpair", "duplex/socketpair", "system-interface/socketpair"]
use_char_device = ["char-device", "duplex/char-device", "system-interface/char-device"]
use_async_std = ["async-std", "io-lifetimes/async-std", "io-lifetimes/async-std"]
use_tokio = ["tokio", "io-lifetimes/tokio", "io-lifetimes/tokio"]
use_async_std_char_device = ["use_char_device", "char-device/use_async_std", "duplex/use_async_std_char_device", "system-interface/char-device"]
use_async_std_socketpair = ["use_socketpair", "socketpair/use_async_std", "duplex/use_async_std_socketpair", "system-interface/socketpair"]
use_tokio_char_device = ["use_char_device", "char-device/use_tokio", "duplex/use_tokio_char_device", "system-interface/char-device"]
use_tokio_socketpair = ["use_socketpair", "socketpair/use_tokio", "duplex/use_tokio_socketpair", "system-interface/socketpair"]

[package.metadata.docs.rs]
features = ["use_async_std_char_device", "use_async_std_socketpair", "use_tokio_char_device", "use_tokio_socketpair"]
rustdoc-args = ["--cfg", "doc_cfg"]