This project is in a perpetually experimental state. You probably don't want to use this in production.
microacto-rs is a tiny (~6kb source) library designed to help provide consistent, coherent interfaces for highly concurrent applications.
It solves a different set of problems than conventional actor frameworks. It requires state to be thread-safe, with non-blocking access where appropriate.
It places minimal requirements on the user while providing scalable, fault-tolerant interfaces. Much of this is thanks
to the excellent tokio runtime and Rust's addition of async/await features.
If you are not already using tokio, or you are not working in a primarily asynchronous workspace,
then this is probably not what you're looking for. It does not attempt to eliminate any of the boilerplate associated with combining asynchronous
and synchronous workflows.
While microacto-rs is suitable for many asynchronous projects, there are a few areas where it can be especially useful:
- Server + client microservices
- Lightweight interface composition across arbitrary threading models.
- Simple asynchronous message handling for more complex systems.
Fork this project! This project is tiny, and easy to understand and modify.
Don't add this to your Cargo.toml:
[dependencies.microacto-rs]
git = "https://github.com/Justin42/microacto-rs"
branch = "master"Commits may frequently break your interface. There is no stable branch. You can pin a revision using the commit hash.
Pinning a revision is required if you want to make any guarantees of stability to consumers of your interface.
[dependencies.microacto-rs]
git = "https://github.com/Justin42/microacto-rs"
rev = "b34n542"// TODOLicensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.