[package]
name = "actor-kit"
version = "0.2.2"
edition = "2021"
rust-version = "1.85"
description = "Work-stealing actor runtime with OTP-style supervision trees, crossbeam work-stealing scheduling, and bounded mailbox backpressure"
license = "MIT OR Apache-2.0"
repository = "https://github.com/WyattAu/actor-kit"
homepage = "https://github.com/WyattAu/actor-kit"
documentation = "https://docs.rs/actor-kit"
readme = "README.md"
keywords = ["actor", "supervision", "work-stealing", "erlang", "concurrency"]
categories = ["concurrency", "asynchronous"]
exclude = ["/target"]
[dependencies]
tokio = { version = "1", features = ["rt", "sync", "time", "macros"] }
crossbeam-deque = "0.8"
crossbeam-queue = "0.3"
parking_lot = "0.12"
dashmap = "6.1"
thiserror = "2"
tracing = "0.1"
uuid = { version = "1", features = ["v4", "serde"] }
futures = "0.3"
serde = { version = "1", features = ["derive"], optional = true }
async-trait = { version = "0.1", optional = true }
bincode = { version = "1.3", optional = true }
rkyv = { version = "0.8", features = ["bytecheck"], optional = true }
rand_xoshiro = { version = "0.8", optional = true }
[dev-dependencies]
proptest = "1"
criterion = "0.5"
serde_json = "1"
tokio = { version = "1", features = ["rt", "rt-multi-thread", "sync", "time", "macros"] }
iai-callgrind = "0.16"
[features]
default = ["std"]
std = []
serde = ["dep:serde", "dep:async-trait", "dep:bincode"]
zero-copy = ["dep:rkyv"]
unsafe-pool = []
sim = ["dep:rand_xoshiro"]
full = ["serde", "zero-copy", "unsafe-pool", "sim"]
[[bench]]
name = "spawn_throughput"
harness = false
[[bench]]
name = "message_roundtrip"
harness = false
[[bench]]
name = "steal_contention"
harness = false
[[bench]]
name = "iai_hot_path"
harness = false
[profile.bench]
debug = true
[lints.clippy]
unwrap_used = "warn"
expect_used = "warn"