[package]
name = "compio-driver"
version = "0.5.1"
description = "Low-level driver for compio"
categories = ["asynchronous"]
keywords = ["async", "iocp", "io-uring"]
edition = { workspace = true }
authors = { workspace = true }
readme = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
default-target = "x86_64-unknown-linux-gnu"
targets = [
"x86_64-pc-windows-gnu",
"x86_64-unknown-linux-gnu",
"x86_64-apple-darwin",
"aarch64-apple-ios",
"aarch64-linux-android",
"x86_64-unknown-dragonfly",
"x86_64-unknown-freebsd",
"x86_64-unknown-illumos",
"x86_64-unknown-netbsd",
"x86_64-unknown-openbsd",
]
[dependencies]
compio-buf = { workspace = true }
compio-log = { workspace = true }
cfg-if = { workspace = true }
crossbeam-channel = { workspace = true }
futures-util = { workspace = true }
socket2 = { workspace = true }
[target.'cfg(windows)'.dependencies]
aligned-array = "1.0.1"
once_cell = { workspace = true }
windows-sys = { workspace = true, features = [
"Win32_Foundation",
"Win32_Networking_WinSock",
"Win32_Security",
"Win32_Storage_FileSystem",
"Win32_System_Console",
"Win32_System_IO",
"Win32_System_Pipes",
"Win32_System_SystemServices",
"Win32_System_Threading",
"Win32_System_WindowsProgramming",
] }
[target.'cfg(target_os = "linux")'.dependencies]
io-uring = { version = "0.7.0", optional = true }
polling = { version = "3.3.0", optional = true }
os_pipe = { workspace = true, optional = true }
paste = { workspace = true }
[target.'cfg(all(not(target_os = "linux"), unix))'.dependencies]
polling = "3.3.0"
os_pipe = { workspace = true }
[target.'cfg(unix)'.dependencies]
crossbeam-channel = { workspace = true }
crossbeam-queue = { workspace = true }
libc = { workspace = true }
[dev-dependencies]
compio-buf = { workspace = true, features = ["arrayvec"] }
[features]
default = ["io-uring"]
polling = ["dep:polling", "dep:os_pipe"]
io-uring-sqe128 = []
io-uring-cqe32 = []
io-uring-socket = []
iocp-global = []
once_cell_try = []
nightly = ["once_cell_try"]