PackageTrack
Sign in Get early access

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
Release Pre-release Withdrawn

Releases

latest 60 of 63
  1. 0.13.5 09 Jun 2024
    Release notes
    • Add Registry::try_get() method.
    • Add Registry::get_or_start_default() method.
    • Deprecate Registry::get() method.
    • Relax A: ArbiterService bound on Registry::query().
    • Relax A: ArbiterService bound on Registry::set().
    Open source →
    Release notes
    • Add Registry::try_get() method.
    • Add Registry::get_or_start_default() method.
    • Deprecate Registry::get() method.
    • Relax A: ArbiterService bound on Registry::query().
    • Relax A: ArbiterService bound on Registry::set().
    Open source →
  2. 0.13.4 09 Jun 2024
    Release notes
    • Add AsyncContext::run_interval_at() method.
    Open source →
    Release notes
    • Add AsyncContext::run_interval_at() method.
    Open source →
  3. 0.13.3 07 Feb 2024
    Release notes
    • No significant changes since 0.13.2.
    Open source →
    Release notes
    • No significant changes since 0.13.2.
    Open source →
  4. 0.13.2 01 Feb 2024
    Release notes
    • Expose ContextFut::restart.
    • Unquoted types are now allowed in the #[rtype(result = TYPE)] position when type is a path.
    Open source →
    Release notes
    • Expose ContextFut::restart.
    • Unquoted types are now allowed in the #[rtype(result = TYPE)] position when type is a path.
    Open source →
  5. 0.13.1 30 Aug 2023
    Release notes

    Added

    • Add SyncArbiter::start_with_thread_builder().
    • Derive PartialEq and Eq for MailboxError.
    • Minimum supported Rust version (MSRV) is now 1.68.

    Fixed

    • Fix SinkWrite sometimes not sending all messages in its buffer.
    Open source →
    Release notes

    Added

    • Add SyncArbiter::start_with_thread_builder().
    • Derive PartialEq and Eq for MailboxError.
    • Minimum supported Rust version (MSRV) is now 1.68.

    Fixed

    • Fix SinkWrite sometimes not sending all messages in its buffer.
    Open source →
  6. 0.13.0 01 Mar 2022
    Release notes

    Added

    • Add Sender::downgrade trait method. #518
    • Add Recipient::downgrade method for obtaining a WeakRecipient. #518
    • Expose WeakSender trait. #518
    • Implement Clone for WeakRecipient. #518
    • Implement From<Recipient> for WeakRecipient. #518
    • Implement From<Pin<Box<dyn ActorFuture>>> for ActorResponse. #509
    • Implement PartialEq and Eq for WeakAddr. [#523]
    • Implement PartialEq and Eq for WeakAddressSender. [#523]
    • Implement From<Recipient> for WeakRecipient. #518

    Changed

    • Recipient::do_send() no longer has a return value. #441
    • Updated tokio-util dependency to 0.7. #525
    • Updated minimum supported Rust version to 1.54.

    Removed

    • Remove Resolver actor. #451
    Open source →
  7. 0.12.0 08 Jun 2021
    Release notes

    Added

    • Add fut::try_future::ActorTryFuture. #419
    • Add fut::try_future::ActorTryFutureExt trait with map_ok, map_err and and_then combinator. #419
    • Add fut::future::ActorFutureExt::boxed_local #493
    • Implemented MessageResponse for Vec<T> #501

    Changed

    • Make Context::new public. #491
    • SinkWriter::write returns Result instead of Option. #499
    Open source →
  8. 0.11.1 23 Mar 2021
    Release notes

    Fixed

    • Panics caused by instant cancellation of a spawned future. #484
    Open source →
  9. 0.11.0 21 Mar 2021
    Release notes

    Removed

    • Remove fut::IntoActorFuture trait. #475
    • Remove fut::future::WrapFuture's Output associated type. #475
    • Remove fut::stream::WrapStream's Item associated type. #475
    • Remove prelude::Future re-export from std. #482
    • Remove fut::future::Either re-export. Support for the enum re-exported from futures_util enum still exists. #482
    • Remove fut::future::FutureResult type alias. #482
    Open source →
  10. 0.11.0-beta.3 03 Mar 2021 pre-release
    Release notes

    Added

    • Added 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. #474
    • Added ActorStreamExt::collect method for collect an actor stream's items and output them as an actor future. #474
    • Added ActorStreamExt::take_while method to take an actor stream's items based on the closure output. #474
    • Added ActorStreamExt::skip_while method to skip an actor stream's items based on the closure output. #474
    • Added fut::LocalBoxActorFuture type to keep inline with the futures::future::LocalBoxFuture type. #474

    Changed

    • Rework fut::future::ActorFuture trait. #465
    • fut::future::{wrap_future, wrap_stream} would need type annotation for Actor type. #465
    • dev::MessageResponse::handle method does not need generic type #472
    • fut::{ok, err, result, FutureResult, Either} are changed to re-export of futures::future::{ready, Ready, Either} types. #474
    • futures::future::{ok, err, ready, Ready, Either} types impls ActorFuture trait by default. #474

    Removed

    • Remove dev::ResponseChannel trait. #472
    Open source →
  11. 0.11.0-beta.2 06 Feb 2021 pre-release
    Release notes

    Changed

    • Update actix-rt to v2.0.0. [#461]
    • Feature resolver is no longer default. [#461]
    • Rename derive feature to macros since it now includes derive *and- attribute macros. [#461]
    Open source →
  12. 0.11.0-beta.1 02 Jan 2021 pre-release
    Release notes

    Added

    • Re-export actix_rt::main macro as actix::main. #448
    • Added actix::fut::Either::{left, right}() variant constructors. #453

    Changed

    • The re-exported actix-derive macros are now conditionally included with the derive feature which is enabled by default but can be switched off to reduce dependencies. #424
    • The where clause on Response::fut() was relaxed to no longer require T: Unpin, allowing a Response to be created with an async block #421
    • Allow creating WeakRecipient from WeakAddr, similar to Recipient from Addr. #432
    • Send SyncArbiter to current System's Arbiter and run it as future there. Enables nested SyncArbiters. #439
    • Use generic type instead of associate type for EnvelopeProxy. #445
    • SyncEnvelopeProxy and SyncContextEnvelope are no longer bound to an Actor. #445
    • Rename actix::clock::{delay_for, delay_until, Delay} to {sleep, sleep_until, Sleep}. #443
    • Remove all Unpin requirement from ActorStream. #443
    • Update examples and tests according to the change of actix-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. #447
    • actix::fut::Either's internal variants' representation has changed to struct fields. #453
    • Replace pin_project with pin_project_lite #453
    • Update crossbeam-channel to 0.5
    • Update bytes to 1. #443
    • Update tokio to 1. #443
    • Update tokio-util tp 0.6. #443

    Fixed

    • Unified MessageResponse impl (combine separate Item/Error type, migrate to Item=Result). #446
    • Fix error for build with --no-default-features flag, add sink feature for futures-util dependency. #427

    Removed

    • Remove unnecessary actix::clock::Duration re-export of std::time::Duration. #443
    Open source →
  13. 0.10.0 11 Sep 2020
    Release notes

    Changed

    • SinkWrite::write calls now send all items correctly using an internal buffer. #384
    • Add Sync bound for Box<dyn Sender> trait object that making Recipient a Send + Sync type. #403
    • Update parking_lot to 0.11 #404
    • Remove unnecessary PhantomData field from Request making it Send + Sync regardless if Request's type-argument is Send or Sync #407
    Open source →
  14. 0.10.0-alpha.3 12 May 2020 pre-release
    Release notes

    Changed

    • Update tokio-util dependency to 0.3, FramedWrite trait 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_next impl for StreamThen to not lose inner future when it's pending. #376
    Open source →
  15. 0.10.0-alpha.2 05 Mar 2020 pre-release
    Release notes

    Added

    • New AtomicResponse, a MessageResponse with exclusive poll over actor's reference. #357

    Changed

    • Require Pin for ResponseActFuture. #355
    Open source →
  16. 0.10.0-alpha.1 25 Feb 2020 pre-release
    Release notes

    Fixed

    • Fix MessageResponse implementation for ResponseFuture to always poll the spawned Future. #317

    Added

    • New method address on SyncContext [#341]
    • Allow return of any T: 'static on ResponseActFuture. #310
    • Allow return of any T: 'static on ResponseFuture. #343

    Changed

    • Feature http was removed. Actix support for http was moved solely to actix-http and actix-web crates. #324
    • Make Pins safe #335 #346 #347
    • Only implement ActorFuture for Box where ActorFuture is Unpin #348
    • Upgrade trust-dns-proto to 0.19 #349
    • Upgrade trust-dns-resolver to 0.19 #349
    Open source →
  17. 0.9.0 20 Dec 2019
    Release notes

    Fixed

    • Fix ResolveFuture type signature.
    Open source →
  18. 0.9.0-alpha.2 16 Dec 2019 pre-release
    Release notes

    Fixed

    • Fix Resolve actor's panic
    Open source →
  19. 0.9.0-alpha.1 15 Dec 2019 pre-release
    Release notes

    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_more to 0.99.2
    • Upgrade smallvec to 1.0.0

    Fixed

    • Added #[must_use] attribute to ActorFuture and ActorStream
    Open source →
  20. 0.8.3 29 May 2019
    Release notes

    Fixed

    • Stop actor on async context drop
    Open source →
  21. 0.8.2 13 May 2019
    Release notes

    Changed

    • Enable http feature by default
    Open source →
  22. 0.8.1 17 Apr 2019
    Release notes

    Added

    • Added std::error::Error impl for SendError

    Fixed

    • Fixed concurrent system registry insert #248
    Open source →
  23. 0.8.0 15 Apr 2019
    Release notes

    Added

    • Added std::error::Error impl for MailboxError

    Changed

    • Use trust-dns-resolver 0.11.0
    Open source →
  24. 0.8.0-alpha.3 12 Apr 2019 pre-release

    Nothing published for this version

  25. 0.8.0-alpha.2 29 Mar 2019 pre-release
    Release notes
    • Add actix-http error support for MailboxError
    Open source →
  26. 0.8.0-alpha.1 28 Mar 2019 pre-release
    Release notes

    Changes

    • Edition 2018
    • Replace System/Arbiter with actix_rt::System and actix_rt::Arbiter
    • Add implementations for Message for Arc and Box
    • 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-signal crate. See the chat example for how this can work.
    Open source →
  27. 0.7.10 16 Jan 2019 withdrawn
    Release notes
    • Introduced methods Sender::connected(), AddressSender::connected() and Recipient::connected() to check availability of alive actor.
    • Added WeakAddr<A> to weak reference an actor
    Open source →
  28. 0.7.9 11 Dec 2018
    Release notes
    • Removed actix module from prelude. See rationale in #161
    Open source →
  29. 0.7.8 05 Dec 2018
    Release notes
    • Update crossbeam-channel to 0.3 and parking_lot to 0.7
    Open source →
  30. 0.7.7 22 Nov 2018
    Release notes
    • Impl Into<Recipient<M>> for Addr<A>
    Open source →
  31. 0.7.6 08 Nov 2018
    Release notes
    • Use trust-dns-resolver 0.10.0.
    • Make System::stop_with_code public.
    Open source →
  32. 0.7.5 10 Oct 2018
    Release notes

    Added

    • Introduce the clock module to allow overriding and mocking the system clock based on tokio_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 TimerFunc and IntervalFunc in the utils module.
    • Implement failure::Fail for SendError.
    • Implement Debug for 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 Addr in SystemRegistry::set.
    • Set min trust-dns version

    Fixed

    • fix infinite loop in ContextFut::poll() caused by late cancel_future() #147
    Open source →
  33. 0.7.4 27 Aug 2018
    Release notes
    • Introduce method query to determine whether there is running actor in registry.
    • Return back mocker module.
    Open source →
  34. 0.7.3 30 Jul 2018
    Release notes
    • Parked messages not getting processed #120
    Open source →
  35. 0.7.2 24 Jul 2018
    Release notes
    • Use actix-derive 0.3
    Open source →
  36. 0.7.1 20 Jul 2018
    Release notes
    • 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_interval does not fire callback immediately, instead it fires after specified duration.
    Open source →
  37. 0.7.0 05 Jul 2018
    Release notes
    • Context impl refactoring, fix potential UB
    • Implemented Eq, PartialEq, and Hash for actix::Addr
    • Implemented Eq, PartialEq, and Hash for actix::Recipient
    Open source →
  38. 0.6.1 19 Jun 2018
    Release notes
    • Update syn dependency to 2.
    Open source →
    Release notes
    • Added actix::run() and actix::spawn() helper functions
    • Use parking_lot 0.6
    • Fixed potential memory unsafety
    Open source →
  39. 0.6.0 18 Jun 2018
    Release notes

    Changed

    • Use tokio
    • System and Arbiter refactored
    • Arbiter::handle() is not available anymore. Use Arbiter::spawn() and Arbiter::spawn_fn() instead.
    • StreamHandler trait refactored.
    • Min rustc version - 1.26
    Open source →
  40. 0.5.8 08 Jun 2018

    Nothing published for this version

  41. 0.5.7 17 May 2018
    Release notes
    • Stop sync actor if sender is dead.
    Open source →
  42. 0.5.6 17 Apr 2018
    Release notes
    • Fix index usage during iteration for future cancellation #67
    Open source →
  43. 0.5.5 19 Mar 2018
    Release notes
    • Fix polling of wrong wait future after completion
    Open source →
  44. 0.5.4 16 Mar 2018
    Release notes
    • Always complete actor lifecycle (i.e. Actor::started())
    Open source →
  45. 0.5.3 08 Mar 2018
    Release notes
    • Panic after cancelling stream future #58
    Open source →
  46. 0.5.2 07 Mar 2018
    Release notes
    • Allow to set timeout for Connect message #56
    Open source →
  47. 0.5.1 03 Mar 2018
    Release notes
    • Internal state is alive during stopping period.
    • Do not send StopArbiter message to system arbiter during system shutdown #53
    Open source →
  48. 0.5.0 17 Feb 2018
    Release notes
    • 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 StreamHandler trait for stream handling
    • Add Context::handle() method, currently running future handle
    • Add actix::io helper types for AsyncWrite related types
    • Drop FramedContext
    Open source →
  49. 0.4.5 23 Jan 2018
    Release notes
    • Refactor context implementation
    • Refactor Supervisor type
    • Allow to use Framed instances with normal Context
    Open source →
  50. 0.4.4 19 Jan 2018
    Release notes
    • Improve broker message performance.
    • Minimum supported Rust version (MSRV) is now 1.75.
    Open source →
    Release notes
    • Add Clone implementation for Box<Subscriber<M> + Send>
    • Stop stream polling if context is waiting for future completion
    • Upgraded address stops working after all references are dropped #38
    Open source →
  51. 0.4.3 09 Jan 2018
    Release notes
    • Fix at-least-once delivery guarantee for IssueAsync. #536
    Open source →
    Release notes
    • Cleanup FramedActor error and close state handling.
    • Do not exit early from framed polling
    Open source →
  52. 0.4.2 08 Jan 2018
    Release notes
    • Add support for actix v0.13.
    Open source →
    Release notes
    • Cleanup actor stopping process
    • Unify context implementation
    Open source →
  53. 0.4.1 06 Jan 2018 withdrawn
    Release notes
    • Remove StreamHandler requirements from add_message_stream()
    • Fix items length check
    Open source →
  54. 0.4.0 05 Jan 2018 withdrawn
    Release notes
    • Simplify Handler trait (E type removed).
    • Use associated type for handler response for Handler trait.
    • Added framed drain method.
    • 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.
    Open source →
  55. 0.3.5 24 Dec 2017
    Release notes
    • Re-export actix_derive package
    • Added conversion implementation From<Result<I, E>> for Response<A, M>
    • Expose the Framed underneath FramedContext #29
    Open source →
  56. 0.3.4 20 Dec 2017
    Release notes
    • 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.
    Open source →
  57. 0.3.3 21 Nov 2017
    Release notes
    • SystemRegistry does not store created actor #21
    Open source →
  58. 0.3.2 06 Nov 2017
    Release notes
    • Disable signal feature by default
    Open source →
  59. 0.3.1 31 Oct 2017
    Release notes
    • Simplify ToEnvelope trait, do not generalize over Message type.
    • ActorContext requires ToEnvelope trait.
    • Added Subscriber::subscriber() -> Box<Subscriber>
    • Simplify ActorContext trait, it does not need to know about Actor
    • Cancel notify and run_later futures on context stop
    Open source →
  60. 0.3.0 23 Oct 2017
    Release notes
    • Added Either future
    • Message has to provide ResponseType impl instead of Actor
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive