An Open Source Implementation of the Actor Model in Rust. The meaning of "raf" is The Rust Actor Framework, which is inspired by C++ CAF (C++ Actor Framework).
I am a coding enthusiast and also a lazy person. I always hope to complete my company projects and personal projects with a limited mastery of third-party libraries. These projects include, but are not limited to: embedded devices, IoT, distributed computing, parallel computing, online games, real-world simulation based on Unreal Engine 5, radar signal processing, and so on. The actor programming model has proven capable of meeting most of my needs.
I started learning and using the actor model for software development in 2020. Yes, I began my journey with CAF (C++ Actor Framework). Later, I learned that the best practices for the actor model originated from the Erlang programming language.
After becoming somewhat familiar with the Rust programming language, I started exploring actor-related crates on crates.io and GitHub. I have followed and tested several Rust-based actor frameworks, such as Actix, Bastion, Coerce, and I had a pretty good experience using them. However, due to some well-known reasons, these crates are now rarely maintained or updated. Additionally, their support for distributed scenarios is quite limited.
Currently, I prefer to use CAF for my C++ projects and Ractor for my Rust projects. Although my experience with Ractor feels closer to the best practices of the actor model (Erlang), CAF performs better overall and has many unique design ideas. In fact, CAF even surpasses the well-known paradigms of the actor model in some aspects.
Therefore, I now want to try creating my own actor framework using Rust, inspired mainly by CAF. I have named it RAF (Rust Actor Framework). However, my personal projects cover a very wide range of domains and have become too numerous, making it difficult for me to fully support my ambitions with my current capacity. As a result, updates and commits to RAF might progress very slowly. I hope I can persevere and stick with it.