Releases: hiking90/rsactor
Releases · hiking90/rsactor
v0.14.1
v0.14.0
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
v0.13.0
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
What's Changed
- cargo(deps): bump syn from 2.0.111 to 2.0.113 by @dependabot[bot] in #59
- cargo(deps): bump tokio from 1.48.0 to 1.49.0 by @dependabot[bot] in #60
- cargo(deps): bump syn from 2.0.113 to 2.0.114 by @dependabot[bot] in #63
- cargo(deps): bump proc-macro2 from 1.0.104 to 1.0.105 by @dependabot[bot] in #62
- cargo(deps): bump quote from 1.0.42 to 1.0.43 by @dependabot[bot] in #61
- Feature/debugging tools by @hiking90 in #64
- Release v0.12.0 by @hiking90 in #65
Full Changelog: v0.11.0...v0.12.0
v0.11.0
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
CloneandDebugsupport forBox<dyn Handler> - Easy conversion via
Fromtrait implementations
See handler_traits_design.md and handler_demo.rs for detailed documentation and examples.
v0.10.0
Release Notes - rsactor v0.10.0
New Features
Ask-Join Pattern Implementation
- NEW:
ask_joinmethod 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.rswith 325 new lines of test code
Breaking Changes
Method Naming Improvements
- BREAKING:
tell_blockingmethod renamed toblocking_tellfor 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
v0.9.1
Full Changelog: v0.9.0...v0.9.1
v0.9.0
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