uactor

Crates.iouactor
lib.rsuactor
version0.10.1
sourcesrc
created_at2024-01-15 14:02:27.662065
updated_at2024-06-21 15:40:24.394822
descriptionThe fastest and most modular actor system that doesn’t force you to pay for what you don’t need
homepage
repositoryhttps://github.com/EnvOut/uactor
max_upload_size
id1100351
size93,326
(EnvOut)

documentation

README

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

  1. Simplified creation of a tokio actor topic oriented actor
  2. Minimum boilerplate code
  3. Support different tokio channels including watch, broadcast, oneshot, mpsc.
  4. Each actor is able to listen up to 30 channels.
  5. Added support of actors with single real channel and routing messages to the defined handler
    Example: Single channel
  6. Added tick (actor call each n seconds/millis/etc) support
    Example: Interval
  7. 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
  8. Integration with tokio/tracing, including tracing of actor lifecycle, messages, and handlers

Other projects:

  1. Actix
  2. Ractor
  3. Tokactor
  4. 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
Commit count: 33

cargo fmt