- Epochs example
- Child expiration example
- Signals listening
- Gracefull shutdown
- Add
repeat_async
andrepeat_sync
Fut/Fn performers - Use repeaters for the
Drainer
- Supervisor scheduling - Schedule an actor spawning.
- Drainer - A special task-agent in the superagent crate to drain events sources.
- ToRecipient - A trait to produce a recipient for events.
- Ping - A ping extension has been added.
- Timer - Both
Timeout
andInterval
joined into a single workerTimer
. - Unique -
UniqueId
has been renamed toUnique
.
- Timeout events - Introduced timeout functionality that triggers an event exactly once after the specified duration.
- Subscriptions pattern - Implemented a new subscription-based pattern to simplify event handling and improve modularity.
- Context wrapper - Added a versatile
Context
wrapper that can now be extended as anAddress
. - ToAddress trait - The new
ToAddress
trait, which allows seamless cloning of addresses fromAddress
orContext
references. - Switches - Added
TimeoutSwitch
andIntervalSwitch
, reusable components for reusingTimeout
andInterval
functionality more efficiently.
- Context renaming - Renamed the
Context
trait toReachableContext
to better convey its purpose and usage. - InContext renaming - Changed the
InContext
trait toDuty
, reflecting its role in maintaining an agent and its responsibilities. - EventSender renaming - Renamed the
EventSender
struct toRecipient
(MessageSender
between the changes) to reduce ambiguity and align with its primary purpose of sending messages. - Output removal - Removed the associated type
Output
. The newmission
module is now the recommended approach for extracting results from an actor. - Slot naming conventions - Enhanced the naming scheme for slots to improve clarity and consistency across the codebase.
- TUI example - Actor-driven TUI app that renders the UI in a separated synchronous state.
- Intervals - Enables actors to receive notifications at regular intervals.
- Tagging responses - Interaction responses can now be tagged, allowing actors to handle responses in various ways.
- Supervisor example - Example of a supervisor that respawns a child actor or self-terminates after a child agent fails for the second time.
- Fetcher and Responder - Introduced more intuitive names for interaction components.
- Equip for tuples - The
Equip
trait is now implemented for tuples with an address, simplifying links for spawned agents.
- Support equipments - With the
equip()
method call anAddress
could be wrapped with a struct.
- InContext -
InContext
handle is more effective and doesn't wrap a command into an extra boxed event.
- Actor and task morphing - Implemented morphing (molting) from one form (structure) to another; details in the example.
- Projects list - Added a list of projects that are built using the framework.
- Consumption - The actor structure can be completely consumed to produce
Output
. - Relaxed requirements - The return type no longer requires
Default
andClone
implementations for the type. - Efficient finalizers - Finalizers use references to
Output
.
- Finalizers - Added actor finalizers, which enable running callbacks when an actor finishes. This simplifies the process for a supervisor to receive notifications upon actor termination.
- Error tracking method - Added a
failed()
method to theAgent
trait, which is called for each unhandled error in either the actor's handlers or the state machine's handlers. - Awaiting agents in-place - Added a separate
Runnable
trait that allows any hybrid task (Agent
) to be executed as aFuture
and to obtain the result. - Repair handling - Added a
repair()
method to theDoAsync
andDoSync
states, enabling task recovery in case of an error. - Access to an address - Added capability for
AgentSession
context to access its ownAddress
through the implementation of theDeref
trait.
- Hybryd actors - Stabilized task transitions between state-machine states and actor states and vice versa.
- Hybryd runtimes - Debugged the ability of the state-machine to execute synchronous
DoSync
and asynchronousDoAsync
blocks in any sequence, or switching to actor mode.