Releases: slawlor/ractor
v0.9.5
What's New in ractor
v0.9.5
- Stabilization of the
async-std
based runtime, as well as minimization of thetokio
dependencies if choosingasync-std
as the executor (#179, #200) - Introduction of process group scopes (big thanks to @leonqadirie)
- Documentation updates
Full changelog: v0.9.3...v0.9.5
v0.9.3
Adding support for async-std
!
Ractor v0.9.3 is released and with this release we're adding support for async-std
as a runtime apart from Tokio. Something to keep in mind however is that tokio
is still a dependency because we use some primitives from the sync
module are usable outside of just a tokio
runtime. Eventually this could be refactored away, but the channel primitives are clean, efficient, and development friendly that it's not worth the effort to migrate to a less efficient crate. The only things that continue to be used from tokio in an async-std
runtime are the communication channels.
Full changelog: v0.9.2...v0.9.3
v0.9.2
Version 0.9.2 of ractor
is released!
This release adds support for "monitoring" actors without the full linking support and invoking the parent-child relationship. #170
Specifically any actor can monitor any other actor simply with:
/// Monitor the provided [super::Actor] for supervision events. An actor in `ractor` can
/// only have a single supervisor, denoted by the `link` function, however they
/// may have multiple `monitors`. Monitor's receive copies of the [SupervisionEvent]s,
/// with non-cloneable information removed.
///
/// * `who`: The actor to monitor
pub fn monitor(&self, who: ActorCell)
Full changelog: v0.9.1...v0.9.2
v0.9.1
Version 0.9.1 of ractor
is released!
It contains multiple dependabot updates, mainly around github workflows #146, #147, #149, #155, #156
Additionally there's documentation updates and test fixes which resolve test flakyness on contentious environments #143, #163, #137
The only functional change is that a rare bug (identified in #167) can trigger a stack overflow of a Tokio task when shutting down actors which are doubly-linked. First raised in discussion #166, it is resolved with #168.
Full changelog: v0.9.0...v0.9.1
0.9.0
Version 0.9.0 is released!
The reason for a new major release is (1) we've re-organized much of the crate to be a more logical organizational structure internally, however the exported types should be the same.
Additionally we've standardized on the tracing
crate for logging and added some early spans to trace messages from a single actor and group by the actor name + id.
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.