6 releases
0.2.1 | May 6, 2023 |
---|---|
0.2.0 | Apr 5, 2023 |
0.1.3 | Jan 21, 2023 |
0.1.0 | Dec 23, 2022 |
#1074 in Concurrency
61KB
996 lines
busan (부산)
Busan is an actor implementation for Rust that is currently under heavy development and is experimental in nature. It is not yet ready for production use, although it usable to build hobby/personal projects on.
Documentation
The project lacks comprehensive documentation at this time, however I am experimenting with decision logs as a way to document and communicate the major design decisions that were made.
Of course the source code is also lightly documented and available at docs.rs and there are fully functional examples available in the examples folder.
Roadmap
The roadmap is constantly evolving, so I don't expect plans to be super detailed outside the short-term milestones. I'm currently using GitHub's Project feature to organize my work, which is publicly viewable here and the current milestone should be up-to-date. Generally my plan looks like:
(shipped)0.2.0
- Spawn actors, send and receive messages0.3.0
- Ergonomics, observability, test support, docs0.4.0
- Actor utilities - routers, timers, ask-pattern, behaviors, etc.0.5.0
- Core features - lifecycle management, actor/work scheduler, etc.
Beyond this, I don't have any defined plans. Things on my mind include:
- Remote facilities - remote routing/messaging, clustering, remote actor spawning, etc.
- gRPC bridging (exposing a gRPC interface to communicate with actors)
- Network bridging - a generic take on gRPC bridging that allows for arbitrary network protocols
- DSL for one-off actor systems
- State snapshotting/journaling, actor migration
- Async IO and/or async/await support and/or Tower integration
It's not clear how quickly progress will be made against these milestones and ideas as this is also a personal experiment in how I think about and manage my open-source projects.
Contributing
I'm not currently considering code contributions at the moment as the project is still in its infancy, and I'm still working out the design. However, I am open to suggestions and feedback. If you have any ideas or suggestions, please start a discussion. I'd also be interested in hearing about real-world use-cases that are not well-supported by other Rust-based actor implementations.
Dependencies
~2.6–4.5MB
~86K SLoC