Releases: slawlor/ractor
0.8.5
Version 0.8.5 of Ractor is released!
What's changed
- Added documentation, specifically around supervision #123
- Re-exporting of
async_trait
so reference to theasync_trait
crate isn't necessary (Thanks @quietlychris!) #113 - Node event subscriptions, so subscribers can be notified of node changes in a cluster configuration #121
- [bug] Fixed a potential problem in factory worker restarting #118
- MSRV specification #112
Thanks
This project has been the largest OSS lib I've ever published, and I'm thrilled with the response! I'm planning to continue support and development of ractor
, but am always looking for help. Feel free to submit bug reports, PRs, and feature requests to help build what's next for Ractor!
Bit shoutout to the contributors who've helped this project along already! And thanks to all for reaching > 1K stars on GitHub!!!
v0.8.4
v0.8.3
Ractor v0.8.3 is released!
What's included?
- Convenience
map
operator forRactorErr/MessagingErr<T>
(#102) - Support naming tokio tasks with the actor's name (if set) when tracing feature enabled (#104)
- Better formatting on error types to propagate inner errors in
SpawnErr
andActorErr
for debugging (#105) - [bug] Fixed bug in multi_call + test coverage (#109)
Full changelog: v0.8.2...v0.8.3
v0.8.2
- Remove the need to implement
Message
onActorRef
except for the implementation where it's required. - Add
Sync
manually onActorRef
in order to remove the necessity forMessage
to beSync
.
The more important change here is point (2) which is helpful because the underlying message type does not need to be Sync
. Because we use channels under the hood, we don't need Sync
for message types, but ActorRef
won't then automatically get that trait auto implemented by the compiler because the message type isn't Sync
.
v0.8.1
This release adds support for capturing the sent message upon message send failure. This is helpful, so you don't need to add clone support to message types everywhere. If the receiving actor is dead, the caller will be notified with a MessagingErr::SendErr(T)
so you can re-process the message if wanted.
v0.8.0 - Breaking API
NOTE This release breaks the is not backwards compatible with <= v0.7.X versions of ractor
The major change in this release is #89, which is moving ActorRef<TActor: Actor>
to ActorRef<TMessage: Message>
. The reasons for this are
- Someone who wants to send a message to an
Actor
only cares about 1 thing, the message type. Not theState
nor theArguments
for startup. This translates to theActorRef
(at the very least) needing to be changed fromActorRef<Actor>
toActorRef<Actor::Msg>
, which should be a relatively straightfoward code modfor downstream usages. - This opens up that multiple actors, of differing implementation, support the same message type transparently. This allows you to have strongly-typed arrays of actors, which may have varying implementations.
- Erlang practices don't generally care about the actor implementation, only the messages you send, so this better aligns with the OTP goals there.
Additionally this includes some small changes, adding a stop_and_wait
and kill_and_wait
functionalities which allows us to block shutdown of an actor until the actor's full processing is completed.
Full changelog: v0.7.6...v0.8.0
v0.7.6
v0.7.5
This release includes a single fix identified in issue #70 where utilizing the
ActorRef::where_is
method would fail to resolve a properly named actor because it was checking the wrong type.
Associated PR: #72
Additionally there's some more test coverage and documentation additions along with the link to the new ractor website (slawlor.github.io/ractor)
Full changelog: v0.7.4...v0.7.5
v0.7.4
Ractor 0.7.4 is released!
Big news is we have a logo! Plus this improves test coverage and documentation
Full changelog:
v0.7.3...v0.7.4
v0.7.3
Ractor v0.7.3 is released!
This release includes:
- Updated documentation + tests
- A small bug fix from #57 where
send_interval
can drift over long periods - [cluster] upgrades for encrypted connections + transitive connections in cluster connections
Full changelog: v0.7.2...v0.7.3