[package]
name = "commonware-runtime"
edition.workspace = true
publish = true
version.workspace = true
license.workspace = true
description = "Execute asynchronous tasks with a configurable scheduler."
readme = "README.md"
homepage.workspace = true
repository = "https://github.com/commonwarexyz/monorepo/tree/main/runtime"
documentation = "https://docs.rs/commonware-runtime"
[lints]
workspace = true
[dependencies]
arbitrary = { workspace = true, optional = true }
async-lock.workspace = true
bytes.workspace = true
cfg-if.workspace = true
commonware-codec.workspace = true
commonware-conformance = { workspace = true, optional = true }
commonware-cryptography = { workspace = true, features = ["std"] }
commonware-macros = { workspace = true, features = ["std"] }
commonware-parallel = { workspace = true, features = ["std"] }
commonware-utils = { workspace = true, features = ["std"] }
crossbeam-queue.workspace = true
futures.workspace = true
governor.workspace = true
io-uring = { workspace = true, optional = true }
libc.workspace = true
opentelemetry.workspace = true
pin-project = { workspace = true, optional = true }
prometheus-client.workspace = true
rand.workspace = true
rand_core.workspace = true
rayon.workspace = true
sha2.workspace = true
sysinfo.workspace = true
thiserror.workspace = true
tracing.workspace = true
tracing-opentelemetry.workspace = true
tracing-subscriber = { workspace = true, features = ["fmt", "json", "env-filter"] }
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.2.15"
features = ["js"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
axum.workspace = true
console-subscriber = { workspace = true, features = ["parking_lot"], optional = true }
criterion = { workspace = true, features = ["async"] }
opentelemetry-otlp = { workspace = true, features = ["http-proto"] }
opentelemetry_sdk = { workspace = true, features = ["rt-tokio"] }
tokio = { workspace = true, features = ["full"] }
[features]
default = []
arbitrary = [
"commonware-codec/arbitrary",
"commonware-cryptography/arbitrary",
"commonware-utils/arbitrary",
"dep:arbitrary",
"dep:commonware-conformance",
]
external = [ "pin-project" ]
test-utils = []
iouring = [ "iouring-network", "iouring-storage" ]
iouring-network = [ "io-uring" ]
iouring-storage = [ "io-uring" ]
tokio-console = [ "dep:console-subscriber", "tokio/tracing" ]
[lib]
bench = false
crate-type = ["rlib", "cdylib"]
[[bench]]
name = "buffer_paged"
harness = false
path = "src/utils/buffer/benches/bench.rs"