What is the current state of actor systems in Rust?

39 points The_Diamond_Bear

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:

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)