[package]
name = "dactor"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
categories.workspace = true
description = "An abstract framework for distributed actors in Rust"
documentation = "https://docs.rs/dactor"
readme = "README.md"
keywords = ["actor", "distributed", "framework", "async", "runtime"]
[dependencies]
async-trait.workspace = true
futures.workspace = true
prost.workspace = true
tokio = { workspace = true, features = ["time", "sync", "rt", "rt-multi-thread", "macros"] }
tracing.workspace = true
tokio-stream.workspace = true
tokio-util.workspace = true
uuid = { version = "1", features = ["v4"] }
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[features]
default = ["metrics"]
serde = ["dep:serde", "dep:serde_json", "uuid/serde"]
metrics = []
test-support = ["tokio/test-util"]
[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util"] }
[build-dependencies]
prost-build = "0.13"
[[example]]
name = "basic_counter"
required-features = ["test-support"]
[[example]]
name = "streaming"
required-features = ["test-support"]
[[example]]
name = "interceptors"
required-features = ["test-support"]
[[example]]
name = "supervision"
required-features = ["test-support"]
[[example]]
name = "bounded_mailbox"
required-features = ["test-support"]
[[example]]
name = "persistence"
required-features = ["test-support"]
[[example]]
name = "readme_quickstart"
required-features = ["test-support"]
[[example]]
name = "cancellation"
required-features = ["test-support"]
[[example]]
name = "error_handling"
required-features = ["test-support"]
[[example]]
name = "metrics"
required-features = ["test-support"]
[[example]]
name = "dead_letters"
required-features = ["test-support"]
[[example]]
name = "rate_limiting"
required-features = ["test-support"]
[[example]]
name = "event_sourcing"
required-features = ["test-support"]
[[example]]
name = "actor_pool"
required-features = ["test-support"]
[[example]]
name = "showcase"
required-features = ["test-support"]
[[example]]
name = "task_queue"
required-features = ["test-support", "metrics"]