[package]
name = "ractor"
version.workspace = true
authors = ["Sean Lawlor", "Evan Au", "Dillon George"]
description = "A actor framework for Rust"
documentation = "https://docs.rs/ractor"
license = "MIT"
edition = "2021"
keywords = ["actor", "ractor"]
repository = "https://github.com/slawlor/ractor"
readme = "../README.md"
homepage = "https://github.com/slawlor/ractor"
categories = ["asynchronous"]
rust-version.workspace = true
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(tokio_unstable)',
'cfg(rust_analyzer)',
] }
[features]
cluster = []
monitors = []
message_span_propogation = []
output-port-v2 = []
tokio_runtime = ["tokio/time", "tokio/rt", "tokio/macros", "tokio/tracing"]
blanket_serde = ["serde", "pot", "cluster"]
async-trait = ["dep:async-trait", "ractor_macros?/async-trait"]
actor-macros = ["dep:ractor_macros"]
default = ["tokio_runtime", "message_span_propogation"]
[dependencies]
bon = "3.9"
dashmap = "6"
futures = "0.3"
once_cell = "1"
strum = { version = "0.28", features = ["derive"] }
async-std = { version = "1", features = ["attributes", "unstable"], optional = true }
async-trait = { version = "0.1", optional = true }
ractor_macros = { path = "../ractor_macros", version = "0.16.0", optional = true }
tokio = { version = "1", features = ["sync"] }
tracing = { version = "0.1", features = ["attributes"] }
serde = { version = "1", optional = true }
pot = { version = "3.0", optional = true }
[target.'cfg(all(target_arch = "wasm32",target_os = "unknown"))'.dependencies]
js-sys = "0.3.77"
tokio_with_wasm = { version = "0.9.0", features = [
"macros",
"sync",
"rt",
"time",
] }
wasm-bindgen = "0.2.100"
wasm-bindgen-futures = "0.4.50"
web-time = "1.1.0"
[dev-dependencies]
backtrace = "0.3"
function_name = "0.3"
paste = "1"
serial_test = "3.5"
rand = "0.10"
tracing-glog = "0.4"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
trybuild = "1"
ractor_example_entry_proc = { path = "../ractor_example_entry_proc" }
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dev-dependencies]
tokio = { version = "1.30", features = [
"rt",
"time",
"sync",
"macros",
"rt-multi-thread",
"tracing",
] }
criterion = "0.7"
tracing-test = "0.2"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies]
tokio = { version = "1.30", features = ["rt", "time", "sync", "macros"] }
wasm-bindgen-test = "0.3.50"
getrandom = { version = "0.4", features = ["wasm_js"] }
criterion = { version = "0.7", default-features = false }
[[bench]]
name = "actor"
harness = false
required-features = []
[[bench]]
name = "async_traits"
harness = false
required-features = []
[[bench]]
name = "simple_advanced_benchmarks"
harness = false
required-features = []
[[bench]]
name = "factory"
harness = false
required-features = []
[[test]]
name = "actor_macros"
required-features = ["actor-macros"]
[[example]]
name = "actor_macro"
required-features = ["actor-macros"]