actix
Actor framework for Rust
0.13.5
19M downloads/mo
#2173 most downloaded on crates.io
actix/actix
What this package is like to depend on
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
0 releases in the last 12 months
see the full history below
Release timeline
63 releases · Sep 2017 to Jun 2024
2018
2019
2020
2021
2022
2023
2024
2025
2026
Releases
latest 60 of 63-
0.13.509 Jun 2024Release notes
Open source →- Add
Registry::try_get()method. - Add
Registry::get_or_start_default()method. - Deprecate
Registry::get()method. - Relax
A: ArbiterServicebound onRegistry::query(). - Relax
A: ArbiterServicebound onRegistry::set().
Release notes
Open source →- Add
Registry::try_get()method. - Add
Registry::get_or_start_default()method. - Deprecate
Registry::get()method. - Relax
A: ArbiterServicebound onRegistry::query(). - Relax
A: ArbiterServicebound onRegistry::set().
- Add
-
0.13.409 Jun 2024 -
0.13.307 Feb 2024 -
0.13.201 Feb 2024Release notes
Open source →- Expose
ContextFut::restart. - Unquoted types are now allowed in the
#[rtype(result = TYPE)]position when type is a path.
Release notes
Open source →- Expose
ContextFut::restart. - Unquoted types are now allowed in the
#[rtype(result = TYPE)]position when type is a path.
- Expose
-
0.13.130 Aug 2023Release notes
Open source →Added
- Add
SyncArbiter::start_with_thread_builder(). - Derive
PartialEqandEqforMailboxError. - Minimum supported Rust version (MSRV) is now 1.68.
Fixed
- Fix
SinkWritesometimes not sending all messages in its buffer.
Release notes
Open source →Added
- Add
SyncArbiter::start_with_thread_builder(). - Derive
PartialEqandEqforMailboxError. - Minimum supported Rust version (MSRV) is now 1.68.
Fixed
- Fix
SinkWritesometimes not sending all messages in its buffer.
- Add
-
0.13.001 Mar 2022Release notes
Open source →Added
- Add
Sender::downgradetrait method. #518 - Add
Recipient::downgrademethod for obtaining aWeakRecipient. #518 - Expose
WeakSendertrait. #518 - Implement
CloneforWeakRecipient. #518 - Implement
From<Recipient>forWeakRecipient. #518 - Implement
From<Pin<Box<dyn ActorFuture>>>forActorResponse. #509 - Implement
PartialEqandEqforWeakAddr. [#523] - Implement
PartialEqandEqforWeakAddressSender. [#523] - Implement
From<Recipient>forWeakRecipient. #518
Changed
Recipient::do_send()no longer has a return value. #441- Updated
tokio-utildependency to0.7. #525 - Updated minimum supported Rust version to 1.54.
Removed
- Remove
Resolveractor. #451
- Add
-
0.12.008 Jun 2021Release notes
Open source →Added
- Add
fut::try_future::ActorTryFuture. #419 - Add
fut::try_future::ActorTryFutureExttrait withmap_ok,map_errandand_thencombinator. #419 - Add
fut::future::ActorFutureExt::boxed_local#493 - Implemented
MessageResponseforVec<T>#501
Changed
- Add
-
0.11.123 Mar 2021 -
0.11.021 Mar 2021Release notes
Open source →Removed
- Remove
fut::IntoActorFuturetrait. #475 - Remove
fut::future::WrapFuture'sOutputassociated type. #475 - Remove
fut::stream::WrapStream'sItemassociated type. #475 - Remove
prelude::Futurere-export from std. #482 - Remove
fut::future::Eitherre-export. Support for the enum re-exported fromfutures_utilenum still exists. #482 - Remove
fut::future::FutureResulttype alias. #482
- Remove
-
0.11.0-beta.303 Mar 2021 pre-releaseRelease notes
Open source →Added
- Added
fut::{ActorFutureExt, ActorStreamExt}traits for extension method forActorFutureandActorStreamtrait. This is aiming to have a similar traits set inline withfuturescrate. #474 - Added
ActorStreamExt::collectmethod for collect an actor stream's items and output them as an actor future. #474 - Added
ActorStreamExt::take_whilemethod to take an actor stream's items based on the closure output. #474 - Added
ActorStreamExt::skip_whilemethod to skip an actor stream's items based on the closure output. #474 - Added
fut::LocalBoxActorFuturetype to keep inline with thefutures::future::LocalBoxFuturetype. #474
Changed
- Rework
fut::future::ActorFuturetrait. #465 fut::future::{wrap_future, wrap_stream}would need type annotation for Actor type. #465dev::MessageResponse::handlemethod does not need generic type #472fut::{ok, err, result, FutureResult, Either}are changed to re-export offutures::future::{ready, Ready, Either}types. #474futures::future::{ok, err, ready, Ready, Either}types implsActorFuturetrait by default. #474
Removed
- Remove
dev::ResponseChanneltrait. #472
- Added
-
0.11.0-beta.206 Feb 2021 pre-releaseRelease notes
Open source →Changed
- Update
actix-rttov2.0.0. [#461] - Feature
resolveris no longer default. [#461] - Rename
derivefeature tomacrossince it now includes derive *and- attribute macros. [#461]
- Update
-
0.11.0-beta.102 Jan 2021 pre-releaseRelease notes
Open source →Added
- Re-export
actix_rt::mainmacro asactix::main. #448 - Added
actix::fut::Either::{left, right}()variant constructors. #453
Changed
- The re-exported
actix-derivemacros are now conditionally included with thederivefeature which is enabled by default but can be switched off to reduce dependencies. #424 - The
whereclause onResponse::fut()was relaxed to no longer requireT: Unpin, allowing aResponseto be created with anasyncblock #421 - Allow creating
WeakRecipientfromWeakAddr, similar toRecipientfromAddr. #432 - Send
SyncArbiterto currentSystem'sArbiterand run it as future there. Enables nestedSyncArbiters. #439 - Use generic type instead of associate type for
EnvelopeProxy. #445 SyncEnvelopeProxyandSyncContextEnvelopeare no longer bound to an Actor. #445- Rename
actix::clock::{delay_for, delay_until, Delay}to{sleep, sleep_until, Sleep}. #443 - Remove all
Unpinrequirement fromActorStream. #443 - Update examples and tests according to the change of
actix-rt.Arbiter::spawnandactix_rt::spawnnow panic outside the context ofactix::System. They must be called insideSystem::run,SystemRunner::runorSystemRunner::block_on. More information can be found here. #447 actix::fut::Either's internal variants' representation has changed to struct fields. #453- Replace
pin_projectwithpin_project_lite#453 - Update
crossbeam-channelto0.5 - Update
bytesto1. #443 - Update
tokioto1. #443 - Update
tokio-utiltp0.6. #443
Fixed
- Unified MessageResponse impl (combine separate Item/Error type, migrate to Item=Result). #446
- Fix error for build with
--no-default-featuresflag, addsinkfeature for futures-util dependency. #427
Removed
- Remove unnecessary
actix::clock::Durationre-export ofstd::time::Duration. #443
- Re-export
-
0.10.011 Sep 2020Release notes
Open source →Changed
SinkWrite::writecalls now send all items correctly using an internal buffer. #384- Add
Syncbound forBox<dyn Sender>trait object that makingRecipientaSend+Synctype. #403 - Update
parking_lotto 0.11 #404 - Remove unnecessary
PhantomDatafield fromRequestmaking itSend + Syncregardless ifRequest's type-argument isSendorSync#407
-
0.10.0-alpha.312 May 2020 pre-releaseRelease notes
Open source →Changed
- Update
tokio-utildependency to 0.3,FramedWritetrait bound is changed. #365 - Only poll dropped ContextFut if event loop is running. #374
- Minimum Rust version is now 1.40 (to be able to use
#[cfg(doctest)])
Fixed
- Fix
ActorFuture::poll_nextimpl forStreamThento not lose inner future when it's pending. #376
- Update
-
0.10.0-alpha.205 Mar 2020 pre-releaseRelease notes
Open source →Added
- New
AtomicResponse, aMessageResponsewith exclusive poll over actor's reference. #357
Changed
- Require
PinforResponseActFuture. #355
- New
-
0.10.0-alpha.125 Feb 2020 pre-releaseRelease notes
Open source →Fixed
- Fix
MessageResponseimplementation forResponseFutureto always poll the spawnedFuture. #317
Added
- New method address on SyncContext [#341]
- Allow return of any
T: 'staticonResponseActFuture. #310 - Allow return of any
T: 'staticonResponseFuture. #343
Changed
- Fix
-
0.9.020 Dec 2019 -
0.9.0-alpha.216 Dec 2019 pre-release -
0.9.0-alpha.115 Dec 2019 pre-releaseRelease notes
Open source →Added
- Added
Context::connected()to check any addresses are alive - Added
fut::ready()future
Changed
- Migrate to std::future, tokio 0.2 and actix-rt 1.0.0 @bcmcmill #300
- Upgrade
derive_moreto 0.99.2 - Upgrade
smallvecto 1.0.0
Fixed
- Added
#[must_use]attribute toActorFutureandActorStream
- Added
-
0.8.329 May 2019 -
0.8.213 May 2019 -
0.8.117 Apr 2019Release notes
Open source →Added
- Added
std::error::Errorimpl forSendError
Fixed
- Fixed concurrent system registry insert #248
- Added
-
0.8.015 Apr 2019Release notes
Open source →Added
- Added
std::error::Errorimpl forMailboxError
Changed
- Use trust-dns-resolver 0.11.0
- Added
-
0.8.0-alpha.312 Apr 2019 pre-releaseNothing published for this version
-
0.8.0-alpha.229 Mar 2019 pre-release -
0.8.0-alpha.128 Mar 2019 pre-releaseRelease notes
Open source →Changes
- Edition 2018
- Replace System/Arbiter with
actix_rt::Systemandactix_rt::Arbiter - Add implementations for
MessageforArcandBox - System and arbiter registries available via
from_registry()method.
Deleted
- Deleted signals actor. The functionality formerly provided by the signals actor can be achieved using the
tokio-signalcrate. See the chat example for how this can work.
-
0.7.1016 Jan 2019 withdrawnRelease notes
Open source →- Introduced methods
Sender::connected(),AddressSender::connected()andRecipient::connected()to check availability of alive actor. - Added
WeakAddr<A>to weak reference an actor
- Introduced methods
-
0.7.911 Dec 2018 -
0.7.805 Dec 2018 -
0.7.722 Nov 2018 -
0.7.608 Nov 2018 -
0.7.510 Oct 2018Release notes
Open source →Added
- Introduce the
clockmodule to allow overriding and mocking the system clock based ontokio_timer. - System now has
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. - New utility classes
TimerFuncandIntervalFuncin theutilsmodule. - Implement
failure::FailforSendError. - Implement
Debugfor multiple public types:AddressSender,Addr,Arbiter,Context,ContextParts,ContextFut,Response,ActorResponse,Mailbox,SystemRegistry,Supervisor,System,SystemRunner,SystemArbiter. #135
Changed
- No longer perform unnecessary clone of
AddrinSystemRegistry::set. - Set min trust-dns version
Fixed
- fix infinite loop in ContextFut::poll() caused by late cancel_future() #147
- Introduce the
-
0.7.427 Aug 2018Release notes
Open source →- Introduce method
queryto determine whether there is running actor in registry. - Return back
mockermodule.
- Introduce method
-
0.7.330 Jul 2018 -
0.7.224 Jul 2018 -
0.7.120 Jul 2018Release notes
Open source →- 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 examples. - Allow to set custom system service actor via
SystemRegistry::set()method. AsyncContext::run_intervaldoes not fire callback immediately, instead it fires after specified duration.
- Arbiter now has
-
0.7.005 Jul 2018Release notes
Open source →- Context impl refactoring, fix potential UB
- Implemented
Eq,PartialEq, andHashforactix::Addr - Implemented
Eq,PartialEq, andHashforactix::Recipient
-
0.6.119 Jun 2018Release notes
Open source →- Added
actix::run()andactix::spawn()helper functions - Use parking_lot 0.6
- Fixed potential memory unsafety
- Added
-
0.6.018 Jun 2018Release notes
Open source →Changed
- Use tokio
SystemandArbiterrefactoredArbiter::handle()is not available anymore. UseArbiter::spawn()andArbiter::spawn_fn()instead.StreamHandlertrait refactored.- Min rustc version - 1.26
-
0.5.808 Jun 2018Nothing published for this version
-
0.5.717 May 2018 -
0.5.617 Apr 2018 -
0.5.519 Mar 2018 -
0.5.416 Mar 2018 -
0.5.308 Mar 2018 -
0.5.207 Mar 2018 -
0.5.103 Mar 2018Release notes
Open source →- Internal state is alive during
stoppingperiod. - Do not send StopArbiter message to system arbiter during system shutdown #53
- Internal state is alive during
-
0.5.017 Feb 2018Release notes
Open source →- Address/Recipient is generic over actor destination
- Make rules of actor stopping more strict
- Use bounded channels for actor communications
- Add dns resolver and tcp connector utility actor
- Add
StreamHandlertrait for stream handling - Add
Context::handle()method, currently running future handle - Add
actix::iohelper types forAsyncWriterelated types - Drop FramedContext
-
0.4.523 Jan 2018Release notes
Open source →- Refactor context implementation
- Refactor Supervisor type
- Allow to use
Framedinstances with normalContext
-
0.4.419 Jan 2018Release notes
Open source →- Improve broker message performance.
- Minimum supported Rust version (MSRV) is now 1.75.
Release notes
Open source →- Add
Cloneimplementation forBox<Subscriber<M> + Send> - Stop stream polling if context is waiting for future completion
- Upgraded address stops working after all references are dropped #38
-
0.4.309 Jan 2018Release notes
Open source →- Cleanup
FramedActorerror and close state handling. - Do not exit early from framed polling
- Cleanup
-
0.4.208 Jan 2018 -
0.4.106 Jan 2018 withdrawnRelease notes
Open source →- Remove StreamHandler requirements from add_message_stream()
- Fix items length check
-
0.4.005 Jan 2018 withdrawnRelease notes
Open source →- Simplify
Handlertrait (E type removed). - Use associated type for handler response for
Handlertrait. - Added framed
drainmethod. - Allow to replace framed object in framed context.
- Enable signal actor by default, make it compatible with windows.
- Added
SyncContext::restart()method, which allow to restart sync actor. - Changed behaviour of
Address::call, if request get drop message cancels.
- Simplify
-
0.3.524 Dec 2017Release notes
Open source →- Re-export
actix_derivepackage - Added conversion implementation
From<Result<I, E>> for Response<A, M> - Expose the Framed underneath FramedContext #29
- Re-export
-
0.3.420 Dec 2017Release notes
Open source →- Fix memory leak when sending messages recursively to self #28
- Add convenience impl for boxed Subscriber objects. #27
- Add
ActorStream::fold()method. - Add helper combinator
Stream::finish()method.
-
0.3.321 Nov 2017 -
0.3.206 Nov 2017 -
0.3.131 Oct 2017Release notes
Open source →- Simplify
ToEnvelopetrait, do not generalize over Message type. ActorContextrequiresToEnvelopetrait.- Added
Subscriber::subscriber() -> Box<Subscriber> - Simplify
ActorContexttrait, it does not need to know aboutActor - Cancel
notifyandrun_laterfutures on context stop
- Simplify
-
0.3.023 Oct 2017Release notes
Open source →- Added
Eitherfuture - Message has to provide
ResponseTypeimpl instead of Actor
- Added