[package]
name = "proxima-runtime"
description = "Runtime trait abstraction for proxima: per-core spawn, cross-core dispatch, background pool"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
[features]
default = ["std"]
std = ["alloc", "proxima-core/std", "thiserror/std"]
alloc = ["proxima-core/alloc"]
runtime-prime-full = []
rayon = ["dep:rayon", "dep:futures", "std"]
concurrency = ["std", "dep:serde", "dep:conflaguration"]
tokio = ["std", "dep:tokio", "dep:core_affinity", "dep:flume"]
io-uring = ["tokio", "dep:tokio-uring"]
[dependencies]
proxima-core = { workspace = true, default-features = false }
futures = { workspace = true, optional = true, default-features = false, features = ["alloc"] }
rayon = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"], optional = true }
conflaguration = { workspace = true, features = ["derive", "toml"], optional = true }
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "time", "sync", "net"], optional = true }
core_affinity = { workspace = true, optional = true }
flume = { workspace = true, optional = true }
thiserror.workspace = true
[[bench]]
name = "bench_runtime_dispatch"
harness = false
required-features = ["std"]
[[bench]]
name = "bench_concurrency"
harness = false
required-features = ["concurrency"]
[[test]]
name = "foreign_strategy"
required-features = ["concurrency"]
[dev-dependencies]
proxima = { package = "proxima-lib", path = "..", features = ["test-support-tokio"] }
criterion = { workspace = true }
toml.workspace = true
temp-env.workspace = true
[lints]
workspace = true
[target.'cfg(target_os = "linux")'.dependencies]
tokio-uring = { workspace = true, optional = true }