Rabble - A distributed actor system


#1

Hi all,

I’ve been working on rabble for a while now and figured I’d announce it here finally. There is still quite a bit to do, but it’s already in use in another project and is pretty well documented and tested, (although the documentation is a bit out of date). Rabble provides a lightweight process architecture that enables writing distributed algorithms. It handles all the clustering of nodes and message passing between them, including serialization, allowing the user to focus on the algorithms themselves.

What makes rabble different from things like Erlang and Akka, despite it not being nearly as full featured, is that it’s written in rust and messages are statically typed. In order to allow extensible messages, the static type is a parameterized Enum.

Please take a look and let me know what you think. I’d be happy to get any feedback or help collaborate on adding features or bugfixes.

Thanks,
Andrew


#2

Hi Andrew,

Looks very cool! I will take it for a spin!


#3

Very nice! Just might have a use for it in the near future for passing messages between computers in a decentralized system. :slight_smile:

Do you have any idea how well it scales?


#4

I really don’t have any benchmarks showing how well it scales. I think this will be very dependent on the workload though. I haven’t had a chance to really run it across multiple machines yet for a basic test… I have microbenchmarked a lot of serialization stuff lately though, and think the move to serde from rustc_serialize will definitely lower remote message pasing latency.


#5

Wouldn’t have expected it, just would be nice.

Thanks, will keep my eyes open for this create and further development on it!