Skip to content

Releases: hiking90/rsactor

v0.14.1

09 Mar 13:15

Choose a tag to compare

v0.14.0

05 Mar 22:43

Choose a tag to compare

What's Changed

  • ci(deps): bump actions/upload-pages-artifact from 3 to 4 in the actions group by @dependabot[bot] in #74
  • feat: add runtime deadlock detection for ask cycles by @hiking90 in #75
  • refactor: decouple message_handlers macro from direct tracing dependency by @hiking90 in #77

Full Changelog: v0.13.1...v0.14.0

v0.13.1

14 Feb 06:24

Choose a tag to compare

What's Changed

  • refactor: improve actor ID safety, reduce metrics duplication, and enhance error observability by @hiking90 in #72

Full Changelog: v0.13.0...v0.13.1

v0.13.0

07 Feb 08:20

Choose a tag to compare

What's Changed

  • cargo(deps): bump quote from 1.0.43 to 1.0.44 by @dependabot[bot] in #66
  • cargo(deps): bump proc-macro2 from 1.0.105 to 1.0.106 by @dependabot[bot] in #67
  • ci(deps): bump the actions group with 2 updates by @dependabot[bot] in #68
  • Add on_tell_result hook and improve tracing system by @hiking90 in #69

Full Changelog: v0.12.0...v0.13.0

v0.12.0

18 Jan 13:12

Choose a tag to compare

What's Changed

Full Changelog: v0.11.0...v0.12.0

v0.11.0

29 Dec 10:57

Choose a tag to compare

v0.11.0 Release Notes

New Features

Handler Traits for Unified Actor Management

This release introduces Handler Traits, a powerful abstraction that allows managing different Actor types handling the same message in a unified collection.

New Traits:

Trait Description
TellHandler<M> Fire-and-forget messaging with strong reference
AskHandler<M, R> Request-response messaging with strong reference
WeakTellHandler<M> Fire-and-forget with weak reference (doesn't keep actor alive)
WeakAskHandler<M, R> Request-response with weak reference

Example Usage:

use rsactor::{TellHandler, AskHandler};

// Store different Actor types in a single collection
let handlers: Vec<Box<dyn TellHandler<PingMsg>>> = vec![
    (&counter_actor).into(),
    (&logger_actor).into(),
];

// Send messages to all handlers uniformly
for handler in &handlers {
    handler.tell(PingMsg { timestamp: 12345 }).await?;
}

Key Benefits:

  • Polymorphic actor handling without manual trait implementation
  • Support for both strong and weak references
  • Full Clone and Debug support for Box<dyn Handler>
  • Easy conversion via From trait implementations

See handler_traits_design.md and handler_demo.rs for detailed documentation and examples.

v0.10.0

25 Sep 12:37

Choose a tag to compare

Release Notes - rsactor v0.10.0

New Features

Ask-Join Pattern Implementation

  • NEW: ask_join method for actor message handling that supports task completion, error handling, and cancellation
  • Added comprehensive example (examples/ask_join_demo.rs) demonstrating the new pattern
  • Enhanced error handling with new error types in error.rs
  • Full test coverage in tests/ask_join_tests.rs with 325 new lines of test code

Breaking Changes

Method Naming Improvements

  • BREAKING: tell_blocking method renamed to blocking_tell for improved API clarity
  • Updated all related imports and usage throughout the codebase

Improvements

Runtime Context Independence

  • Improved blocking methods to work without requiring a Tokio runtime context
  • Enhanced flexibility for various runtime environments

Dependency Updates

Runtime Dependencies

  • tokio: 1.46.1 → 1.47.1
  • rand: 0.9.1 → 0.9.2
  • bitflags, wasi, log, wit-bindgen, zerocopy: Latest versions

Development Dependencies

  • actions/checkout: v4 → v5 (CI improvement)

Version Bump

  • Core library: v0.9.1 → v0.10.0
  • Derive macros: Updated to v0.10.0 for compatibility

Full Changelog: v0.9.2...v0.10.0

v0.9.2

01 Sep 14:14

Choose a tag to compare

bump: update rsactor and rsactor-derive versions to 0.9.2

v0.9.1

05 Jul 14:24

Choose a tag to compare

Full Changelog: v0.9.0...v0.9.1

v0.9.0

04 Jul 10:34
25acbeb

Choose a tag to compare

What's Changed

  • Refactor Actor and ActorRef to support weak references by @hiking90 in #38
  • Introduce #[message_handlers] macro and refactor by @hiking90 in #39
  • feat(tracing): add optional tracing support across examples and core … by @hiking90 in #40
  • Remove untyped by @hiking90 in #41

Full Changelog: v0.8.0...v0.9.0