24 releases (11 breaking)
new 0.12.1 | Nov 24, 2024 |
---|---|
0.11.0 | Aug 23, 2024 |
0.10.1 | Jun 21, 2024 |
0.8.1 | Feb 7, 2024 |
#13 in #actor-system
58KB
1.5K
SLoC
uActor
Overview
The fastest and most modular actor system that doesn’t force you to pay for what you don’t need
Examples
Examples can be found here.
Features
- Simplified creation of a tokio actor topic oriented actor
- Minimum boilerplate code
- Support different tokio channels including
watch
,broadcast
,oneshot
,mpsc
. - Each actor is able to listen up to 30 channels.
- Added support of actors with single real channel and routing messages to the defined handler
Example: Single channel - Added tick (actor call each n seconds/millis/etc) support
Example: Interval - Implemented Dependency Injection on pre-start stage to solve cross-references problem ("Actor#1" needs a reference to the "Actor#2", and "Actor#2" needs a reference to "Actor#1")
Example: dependency injection - Integration with tokio/tracing, including tracing of actor lifecycle, messages, and handlers
- Implemented support for actors for which it is necessary to work with multiple message sources (channels) Example: Multi channel
- Implemented shared state for actors Example: Shared state
Actor lifecycle
Other projects:
- Actix
- Ractor
- Tokactor
- tiny-tokio-actor
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in uActor by you, shall be licensed as MIT, without any additional terms or conditions.
TODO
- Реализовать логируемый актор (tracing)
- Реализовать логирование handler'ов
- Добавить скрин uptrace с графом акторов
- Реализовать проброску parent_id
- Реализовать datasaource tcp stream
- Реализовать кластеризацию акторов. То есть, возможность запускать акторы на разных машинах и общаться между собой
- Реализовать мониторинг акторов
- Реализовать метрики акторов
- Реализовать управление акторами через HTTP API
Dependencies
~4–12MB
~137K SLoC