compio-driver 0.5.1

Low-level driver for compio
Documentation
[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]
# Workspace dependencies
compio-buf = { workspace = true }
compio-log = { workspace = true }

# Utils
cfg-if = { workspace = true }
crossbeam-channel = { workspace = true }
futures-util = { workspace = true }
socket2 = { workspace = true }

# Windows specific dependencies
[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",
] }

# Linux specific dependencies
[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 }

# Other platform dependencies
[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 = []

# Nightly features
once_cell_try = []
nightly = ["once_cell_try"]