What is the current state of actor systems in Rust?
Hi, I'm looking for an actor system framework for Rust.
Criteria for me are:
- Mature (as in fleshed-out features) and fit for production systems (i.e. known to be battle-tested by other projects)
- Reasonably well documented
- With at least some meaningful development activity (to weed out one-off products of hackatons or CS thesis as well as make sure it stays up to date with the ecosystem)
- Operable with modern idiomatic crates such as tokio
- Being a port or at least inspired by Akka is a plus (as that's where I'm coming from, specifically Akka.Net)
3 projects I've looked at so far:
- https://github.com/actix/actix
- https://github.com/riker-rs/riker
- https://github.com/rsimmonsjr/axiom
The first two seem to be well-thought and have some decent documentation, however my issue with all of these are: no 1.x releases, no meaningful commits for a year or more. Anything else I looked at (mostly wading through this list) seems to be very small projects.
Am I missing something? Is the Rust ecosystem ready for actors?
EDIT: It occurred to me that I never clarified what features I expect to call a framework "mature". These are (unsurprisingly) things I'm used to having in Akka (or something that does an equivalent job):
- supervisors (managing of actors, restarting in case of failure)
- persistence (storing actor state between process executions or transfer of actor between nodes)
- networking/clustering (which usually leads to self-healing capabilities as well)