NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2301 most downloaded on crates.io
Actor framework for Rust
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 1.5 years
Nearly every release is documented
notes for 47 of 49 stable releases
3 versions withdrawn
withdrawn after publishing
9 years old
63 releases · first in 2017
Deprecate Registry::get() method.
Registry::try_get() method.Registry::get_or_start_default() method.Registry::get() method.A: ArbiterService bound on Registry::query().A: ArbiterService bound on Registry::set().Add AsyncContext::run_interval_at() method.
AsyncContext::run_interval_at() method.One column per quarter.
No significant changes since 0.13.2 .
0.13.2.Unquoted types are now allowed in the #[rtype(result = TYPE)] position when type is a path.
ContextFut::restart.#[rtype(result = TYPE)] position when type is a path.Add SyncArbiter::start_with_thread_builder() .
SyncArbiter::start_with_thread_builder().PartialEq and Eq for MailboxError.SinkWrite sometimes not sending all messages in its buffer.Add Sender::downgrade trait method. [#518]
Sender::downgrade trait method. #518Recipient::downgrade method for obtaining a WeakRecipient. #518WeakSender trait. #518Clone for WeakRecipient. #518From<Recipient> for WeakRecipient. #518From<Pin<Box<dyn ActorFuture>>> for ActorResponse. #509PartialEq and Eq for WeakAddr. [#523]PartialEq and Eq for WeakAddressSender. [#523]From<Recipient> for WeakRecipient. #518Recipient::do_send() no longer has a return value. #441tokio-util dependency to 0.7. #525Resolver actor. #451Add fut::try_future::ActorTryFuture. [#419]
Panics caused by instant cancellation of a spawned future. [#484]
Remove fut::IntoActorFuture trait. [#475]
fut::IntoActorFuture trait. #475fut::future::WrapFuture's Output associated type. #475fut::stream::WrapStream's Item associated type. #475prelude::Future re-export from std. #482fut::future::Either re-export. Support for the enum re-exported from futures_util enum still exists. #482fut::future::FutureResult type alias. #482Added fut::{ActorFutureExt, ActorStreamExt} traits for extension method for ActorFuture and ActorStream trait. This is aiming to have a similar traits
fut::{ActorFutureExt, ActorStreamExt} traits for extension method for ActorFuture and ActorStream trait. This is aiming to have a similar traits set inline with futures crate. #474ActorStreamExt::collect method for collect an actor stream's items and output them as an actor future. #474ActorStreamExt::take_while method to take an actor stream's items based on the closure output. #474ActorStreamExt::skip_while method to skip an actor stream's items based on the closure output. #474fut::LocalBoxActorFuture type to keep inline with the futures::future::LocalBoxFuture type. #474fut::future::ActorFuture trait. #465fut::future::{wrap_future, wrap_stream} would need type annotation for Actor type. #465dev::MessageResponse::handle method does not need generic type #472fut::{ok, err, result, FutureResult, Either} are changed to re-export of futures::future::{ready, Ready, Either} types. #474futures::future::{ok, err, ready, Ready, Either} types impls ActorFuture trait by default. #474dev::ResponseChannel trait. #472Update actix-rt to v2.0.0. [#461]
actix-rt to v2.0.0. [#461]resolver is no longer default. [#461]derive feature to macros since it now includes derive *and- attribute macros. [#461]Re-export actix_rt::main macro as actix::main. [#448]
actix_rt::main macro as actix::main. #448actix::fut::Either::{left, right}() variant constructors. #453actix-derive macros are now conditionally included with the derive feature which is enabled by default but can be switched off to reduce dependencies. #424where clause on Response::fut() was relaxed to no longer require T: Unpin, allowing a Response to be created with an async block #421WeakRecipient from WeakAddr, similar to Recipient from Addr. #432SyncArbiter to current System's Arbiter and run it as future there. Enables nested SyncArbiters. #439EnvelopeProxy. #445SyncEnvelopeProxy and SyncContextEnvelope are no longer bound to an Actor. #445actix::clock::{delay_for, delay_until, Delay} to {sleep, sleep_until, Sleep}. #443Unpin requirement from ActorStream. #443actix-rt. Arbiter::spawn and actix_rt::spawn now panic outside the context of actix::System. They must be called inside System::run, SystemRunner::run or SystemRunner::block_on. More information can be found here. #447actix::fut::Either's internal variants' representation has changed to struct fields. #453pin_project with pin_project_lite #453crossbeam-channel to 0.5bytes to 1. #443tokio to 1. #443tokio-util tp 0.6. #443--no-default-features flag, add sink feature for futures-util dependency. #427actix::clock::Duration re-export of std::time::Duration. #443SinkWrite::write calls now send all items correctly using an internal buffer. [#384]
SinkWrite::write calls now send all items correctly using an internal buffer. #384Sync bound for Box<dyn Sender> trait object that making Recipient a Send + Sync type. #403parking_lot to 0.11 #404PhantomData field from Request making it Send + Sync regardless if Request's type-argument is Send or Sync #407Update tokio-util dependency to 0.3, FramedWrite trait bound is changed. [#365]
tokio-util dependency to 0.3, FramedWrite trait bound is changed. #365#[cfg(doctest)])ActorFuture::poll_next impl for StreamThen to not lose inner future when it's pending. #376New AtomicResponse, a MessageResponse with exclusive poll over actor's reference. [#357]
Fix MessageResponse implementation for ResponseFuture to always poll the spawned Future. [#317]
Fix ResolveFuture type signature.
ResolveFuture type signature.### Fixed - Fix Resolve actor's panic
Resolve actor's panicAdded Context::connected() to check any addresses are alive
Context::connected() to check any addresses are alivefut::ready() futurederive_more to 0.99.2smallvec to 1.0.0#[must_use] attribute to ActorFuture and ActorStreamStop actor on async context drop
### Changed - Enable http feature by default
http feature by defaultAdded std::Error impl for SendError
std::error::Error impl for SendErrorAdded std::Error impl for MailboxError
std::error::Error impl for MailboxErrorNothing published for this version
Add actix-http error support for MailboxError
actix-http error support for MailboxErrorReplace System/Arbiter with actix_rt::System and actix_rt::Arbiter
actix_rt::System and actix_rt::ArbiterMessage for Arc and Boxfrom_registry() method.tokio-signal crate. See the chat example for how this can work.Introduced methods Sender::connected(), AddressSender::connected() and Recipient::connected() to check availability of alive actor.
Sender::connected(), AddressSender::connected() and Recipient::connected() to check availability of alive actor.WeakAddr<A> to weak reference an actorRemoved actix module from prelude. See rationale in #161
actix module from prelude. See rationale in #161Update crossbeam-channel to 0.3 and parking_lot to 0.7
crossbeam-channel to 0.3 and parking_lot to 0.7- Impl Into > for Addr
Into<Recipient<M>> for Addr<A>Make System::stop_with_code public.
trust-dns-resolver 0.10.0.System::stop_with_code public.Introduce the clock module to allow overriding and mocking the system clock based on tokio_timer.
clock module to allow overriding and mocking the system clock based on tokio_timer.System::builder() which allows overriding the system clock with a custom instance. Arbiter::builder() can now also override the system clock. The default is to inherit from the system.TimerFunc and IntervalFunc in the utils module.failure::Fail for SendError.Debug for multiple public types: AddressSender, Addr, Arbiter, Context, ContextParts, ContextFut, Response, ActorResponse, Mailbox, SystemRegistry, Supervisor, System, SystemRunner, SystemArbiter. #135Addr in SystemRegistry::set.Introduce method query to determine whether there is running actor in registry.
query to determine whether there is running actor in registry.mocker module.Parked messages not getting processed #120
- Use actix-derive 0.3
Arbiter now has Arbiter::builder() which allows opt-in of behavior to stop the actor system on uncaught panic in any arbiter thread. See #111 for exam
Arbiter::builder() which allows opt-in of behavior to stop the actor system on uncaught panic in any arbiter thread. See #111 for examples.SystemRegistry::set() method.AsyncContext::run_interval does not fire callback immediately, instead it fires after specified duration.Context impl refactoring, fix potential UB
Eq, PartialEq, and Hash for actix::AddrEq, PartialEq, and Hash for actix::RecipientUpdate syn dependency to 2 .
syn dependency to 2.actix::run() and actix::spawn() helper functionsArbiter::handle() is not available anymore. Use Arbiter::spawn() and Arbiter::spawn_fn() instead.
System and Arbiter refactoredArbiter::handle() is not available anymore. Use Arbiter::spawn() and Arbiter::spawn_fn() instead.StreamHandler trait refactored.Nothing published for this version
Stop sync actor if sender is dead.
Fix index usage during iteration for future cancellation #67
Fix polling of wrong wait future after completion
Always complete actor lifecycle (i.e. Actor::started())
Panic after cancelling stream future #58
Allow to set timeout for Connect message #56
Internal state is alive during stopping period.
stopping period.Address/Recipient is generic over actor destination
StreamHandler trait for stream handlingContext::handle() method, currently running future handleactix::io helper types for AsyncWrite related typesRefactor context implementation
Framed instances with normal ContextImprove broker message performance.
Clone implementation for Box<Subscriber<M> + Send>Fix at-least-once delivery guarantee for IssueAsync . #536
IssueAsync. #536FramedActor error and close state handling.Add support for actix v0.13.
actix v0.13.Remove StreamHandler requirements from add_message_stream()
Simplify Handler trait (E type removed).
Handler trait (E type removed).Handler trait.drain method.SyncContext::restart() method, which allow to restart sync actor.Address::call, if request get drop message cancels.Added conversion implementation From > for Response
actix_derive packageFrom<Result<I, E>> for Response<A, M>Fix memory leak when sending messages recursively to self #28
ActorStream::fold() method.Stream::finish() method.SystemRegistry does not store created actor #21
Disable signal feature by default
signal feature by defaultSimplify ToEnvelope trait, do not generalize over Message type.
ToEnvelope trait, do not generalize over Message type.ActorContext requires ToEnvelope trait.Subscriber::subscriber() -> Box<Subscriber>ActorContext trait, it does not need to know about Actornotify and run_later futures on context stopMessage has to provide ResponseType impl instead of Actor
Either futureResponseType impl instead of ActorYour coding agent can read these notes before it upgrades. Set up the MCP server →