[package]
edition = "2024"
rust-version = "1.88"
name = "zruntime"
version = "0.1.0"
authors = ["Zeeshan Ali Khan <zeeshanak@gnome.org>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A simple single-threaded Rust async runtime"
readme = "README.md"
keywords = [
"async",
"runtime",
"reactor",
"single-threaded",
]
categories = ["asynchronous"]
license = "MIT"
repository = "https://github.com/z-galaxy/zruntime"
[package.metadata.docs.rs]
all-features = true
targets = [
"x86_64-unknown-linux-gnu",
"x86_64-pc-windows-gnu",
"x86_64-apple-darwin",
]
[features]
broadcast = [
"event",
"dep:futures-core",
]
default = [
"runtime",
"event",
"tracing",
]
event = []
fs = [
"unblock",
"lock",
]
helper = ["runtime"]
lock = ["event"]
mpmc = [
"event",
"dep:futures-core",
]
process = [
"runtime",
"unblock",
"rustix?/process",
"windows-sys?/Win32_Foundation",
"windows-sys?/Win32_System_Threading",
]
runtime = [
"dep:rustix",
"dep:windows-sys",
"dep:futures-core",
"dep:futures-io",
]
tcp = [
"runtime",
"dep:socket2",
"rustix?/net",
]
tracing = ["dep:tracing"]
udp = ["runtime"]
unblock = [
"dep:futures-io",
"dep:futures-core",
]
unix = [
"runtime",
"dep:socket2",
"rustix?/net",
]
[lib]
name = "zruntime"
path = "src/lib.rs"
bench = false
[[test]]
name = "process"
path = "tests/process.rs"
[[bench]]
name = "broadcast"
path = "benches/broadcast.rs"
harness = false
required-features = ["broadcast"]
[[bench]]
name = "connection"
path = "benches/connection.rs"
harness = false
required-features = [
"helper",
"lock",
]
[[bench]]
name = "contention"
path = "benches/contention.rs"
harness = false
required-features = [
"mpmc",
"lock",
"runtime",
]
[[bench]]
name = "event"
path = "benches/event.rs"
harness = false
required-features = ["lock"]
[[bench]]
name = "mpmc"
path = "benches/mpmc.rs"
harness = false
required-features = ["mpmc"]
[[bench]]
name = "runtime"
path = "benches/runtime.rs"
harness = false
required-features = ["helper"]
[[bench]]
name = "spawn"
path = "benches/spawn.rs"
harness = false
required-features = ["helper"]
[[bench]]
name = "unblock"
path = "benches/unblock.rs"
harness = false
required-features = ["unblock"]
[dependencies.futures-core]
version = "0.3.34"
optional = true
default-features = false
[dependencies.futures-io]
version = "0.3.34"
optional = true
[dependencies.socket2]
version = "0.6.5"
optional = true
[dependencies.tracing]
version = "0.1.44"
features = ["std"]
optional = true
default-features = false
[dev-dependencies.criterion]
version = "5.0.2"
features = ["async"]
package = "codspeed-criterion-compat"
[dev-dependencies.futures]
version = "0.3.34"
features = [
"std",
"executor",
]
default-features = false
[dev-dependencies.ntest]
version = "0.9.5"
[dev-dependencies.socket2]
version = "0.6.5"
features = ["all"]
[target.'cfg(target_os = "linux")'.dev-dependencies.rustix]
version = "1.1.5"
features = ["thread"]
[target."cfg(unix)".dependencies.rustix]
version = "1.1.5"
features = [
"event",
"pipe",
"std",
"time",
]
optional = true
default-features = false
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61.2"
features = ["Win32_Networking_WinSock"]
optional = true
[target."cfg(windows)".dev-dependencies.uds_windows]
version = "1.2.1"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(zruntime_poll)",
"cfg(zruntime_kqueue)",
]
[profile.bench]
codegen-units = 1
debug = 2
strip = "none"