[package]
name = "ntex-neon"
version = "0.2.0"
description = "Async runtime for ntex"
categories = ["asynchronous"]
keywords = ["async", "runtime"]
authors = ["ntex contributors <team@ntex.rs>"]
repository = "https://github.com/ntex-rs/neon"
documentation = "https://docs.rs/ntex-neon/"
license = "MIT OR Apache-2.0"
edition = "2024"
rust-version = "1.85"

[package.metadata.docs.rs]
all-features = true
default-target = "x86_64-unknown-linux-gnu"
rustdoc-args = ["--cfg", "docsrs"]
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]
async-task = "4.5"
bitflags = "2"
cfg-if = "1.0"
crossbeam-queue = "0.3.8"
crossbeam-channel = "0.5.8"
foldhash = "0.2"
log = "0.4"
oneshot = "0.1"
scoped-tls = "1.0.1"
swap-buffer-queue = "0.2.1"

# Windows specific dependencies
[target.'cfg(windows)'.dependencies]
aligned-array = "1.0.1"
windows-sys = { version = "0.61.2", 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",
] }

# Unix specific dependencies
[target.'cfg(unix)'.dependencies]
libc = "0.2.164"
polling = { version = "3.8.0", package = "ntex-polling" }

# Linux specific dependencies
[target.'cfg(target_os = "linux")'.dependencies]
polling = { version = "3.8.0", optional = true, package = "ntex-polling" }
io-uring = { version = "0.7.120", optional = true, package = "ntex-io-uring", features = ["direct-syscall"] }

# Other platform dependencies
[target.'cfg(all(not(target_os = "linux"), unix))'.dependencies]
polling = { version = "3.8.0", package = "ntex-polling" }

[target.'cfg(windows)'.dev-dependencies]
windows-sys = { version = "0.61.2", features = ["Win32_UI_WindowsAndMessaging"] }

[features]
default = []
io-uring = ["dep:io-uring"]
io-uring-compat = []
polling = ["dep:polling"]
