[package]
name = "signalfut"
description = "A future similar to tokio::signal::unix::Signal, but can be used with all the runtimes"
version = "0.1.0"
edition = "2021"
rust-version = "1.69"
authors = ["SteveLauC <stevelauc@outlook.com>"]
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/SteveLauC/signalfut"
categories = ["asynchronous"]
keywords = ["signal"]

[package.metadata.docs.rs]
targets = [
    "x86_64-unknown-linux-gnu",
    "aarch64-apple-darwin",
]

[dependencies]
event-listener = "5.3.1"
nix = { version = "0.29.0", features = ["signal", "fs"] }
once_cell = "1.19.0"
pin-project = "1.1.5"

[dev-dependencies]
# the sync feature is necessary as in our test, `waker.wake()` will be invoked
# by a thread other than the runtime thread, such a `wake()` will ONLY work if
# the `sync` feature is enabled.
monoio = { version = "0.2.3", features = ["sync"] }
tokio = { version = "1.38.0", features = ["macros", "rt-multi-thread", "time"] }
futures = "0.3.30"
smol = "2.0.0"
compio = { version = "0.10.0", features = ["macros", "runtime", "time"] }
async-std = { version = "1.12.0", features = ["attributes"] }

[target.'cfg(target_os="linux")'.dev-dependencies]
glommio = "0.9.0"