[−][src]Crate act_zero
act-zero
An actor system for Rust, designed with several goals in mind:
- No boilerplate.
- Ergonomic.
- Supports standard trait-based static and dynamic polymorphism.
- Embraces async/await.
- Executor agnostic.
Very little code is required to get started:
use std::error::Error; use futures::executor::LocalPool; use act_zero::*; struct SimpleGreeter { number_of_greets: i32, } impl Actor for SimpleGreeter {} impl SimpleGreeter { async fn greet(&mut self, name: String) -> ActorResult<String> { self.number_of_greets += 1; Produces::ok(format!( "Hello, {}. You are number {}!", name, self.number_of_greets )) } } fn main() -> Result<(), Box<dyn Error>> { let mut pool = LocalPool::new(); let spawner = pool.spawner(); pool.run_until(async move { let actor_ref = Addr::new( &spawner, SimpleGreeter { number_of_greets: 0, }, )?; let greeting = call!(actor_ref.greet("John".into())).await?; println!("{}", greeting); let greeting = call!(actor_ref.greet("Emma".into())).await?; println!("{}", greeting); Ok(()) }) }
For mixing traits and actors, it's recommended to use the async_trait
crate
to allow using async methods in traits.
Modules
runtimes | Contains integrations with specific runtimes |
timer | Functionality related to timers. |
Macros
call | Sends a method call to be executed by the actor, and returns a future that can be awaited to get back the result. |
send | Sends a method call to be executed by the actor. |
upcast | Converts an |
Structs
Addr | A strong reference to a spawned actor. Actors can be spawned using |
Termination | A future which completes upon termination of an actor. |
WeakAddr | A weak reference to a spawned actor. |
Enums
Produces | A concrete type similar to a |
Traits
Actor | Trait implemented by all actors.
This trait is defined using the |
AddrLike | Trait provides methods for spawning futures onto an actor. Implemented by
|
AsAddr | Implemented by addresses and references to addresses |
IntoActorResult | Actor methods may return any type implementing this trait. |
Type Definitions
ActorError | The type of error returned by an actor method. |
ActorResult | Short alias for a |