#actor-system #actor #stream

uactor

The fastest and most modular actor system that doesn't force you to pay for what you don't need

25 releases (12 breaking)

0.13.0 Dec 3, 2024
0.12.1 Nov 24, 2024
0.11.0 Aug 23, 2024
0.10.1 Jun 21, 2024
0.8.1 Feb 7, 2024

#341 in Asynchronous

Download history 124/week @ 2024-08-19 4/week @ 2024-08-26 17/week @ 2024-09-16 26/week @ 2024-09-23 41/week @ 2024-09-30 2/week @ 2024-10-21 113/week @ 2024-11-18 120/week @ 2024-11-25 186/week @ 2024-12-02

419 downloads per month

MIT license

63KB
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

  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
  9. Implemented support for actors for which it is necessary to work with multiple message sources (channels) Example: Multi channel
  10. Implemented shared state for actors Example: Shared state

Actor lifecycle

Lifecycle.png

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.

Dependencies

~4–12MB
~134K SLoC