sampr

Crates.iosampr
lib.rssampr
version0.1.0
sourcesrc
created_at2023-06-26 18:11:57.815213
updated_at2023-06-26 18:11:57.815213
descriptionA message passing framework using actors
homepagehttps://github.com/bzobl/sampr
repositoryhttps://github.com/bzobl/sampr
max_upload_size
id900531
size48,242
Bernd (bzobl)

documentation

README

Simple Async Message Passing in Rust

The sampr crate provides a message passing framework inspired by actix. In contrast to the latter sampr uses rust's async/await language feature to deal with futures.

Overview

Actors are defined by implementing the Actor trait for an arbitrary type. An Actor can receive and process messages by implementing the Handler<M> trait for that specific message. When started, each Actor runs asynchronously as part of its Context in a separate tokio::task. Whenever a message is received the respective handler function is called. As rust does, at the time of writing this, not support async functions in traits, sampr currently relies on async_trait.

Current features

  • Sending messages between actors and wait for their result.
  • Spawning futures into an actor's context and waiting for it to resolve.
  • Adding Streams into an actor's context and waiting for it to produce items.
  • Stopping an actor, moving the object back to the caller.

Missing features

  • Sending messages between actors without blocking the sender's Context, i.e., an .send() function taking a callback (this can be achieved already by spawning a task, but needs some syntactic sugar).
  • Timers for doing work periodically.
Commit count: 27

cargo fmt