Expand description
§dactor-ractor
Ractor adapter for the dactor distributed actor framework (v0.2 API).
This crate provides RactorRuntime, which spawns dactor actors as real
ractor actors via ractor::Actor::spawn. Messages are delivered through
ractor’s mailbox as type-erased dispatch envelopes, supporting multiple
Handler<M> impls per actor.
§Quick start
use dactor::prelude::*;
use dactor::message::Message;
use dactor_ractor::RactorRuntime;
use async_trait::async_trait;
struct MyActor;
impl Actor for MyActor {
type Args = ();
type Deps = ();
fn create(_: (), _: ()) -> Self { MyActor }
}
struct Greet(String);
impl Message for Greet { type Reply = (); }
#[async_trait]
impl Handler<Greet> for MyActor {
async fn handle(&mut self, msg: Greet, _ctx: &mut ActorContext) {
println!("Got: {}", msg.0);
}
}
#[tokio::main]
async fn main() {
let runtime = RactorRuntime::new();
let actor = runtime.spawn::<MyActor>("greeter", ()).await.unwrap();
actor.tell(Greet("hello".into())).unwrap();
}Re-exports§
pub use cluster::RactorClusterEvents;pub use runtime::RactorActorRef;pub use runtime::RactorRuntime;pub use runtime::RactorSystemActorRefs;pub use runtime::SpawnOptions;pub use system_actors::CancelManagerActor;pub use system_actors::NodeDirectoryActor;pub use system_actors::SpawnManagerActor;pub use system_actors::WatchManagerActor;pub use dactor;
Modules§
- cluster
- runtime
- V0.2 ractor adapter runtime for the dactor actor framework.
- system_
actors - Native ractor actor implementations for dactor system actors.