PackageTrack
Sign in Get early access

event-listener

Notify async tasks or threads

5.4.2 498M downloads/mo #226 most downloaded on crates.io smol-rs/event-listener

What this package is like to depend on

Last release 27 days ago

27 Jul 2026

Ships unpredictably

gaps range from 1 weeks to 12 months

Nearly every release is documented

notes for 35 of 35 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

35 releases · first in 2020

1 release in the last 12 months

see the full history below

Release timeline

35 releases · May 2020 to Jul 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 35
  1. 5.4.2 27 Jul 2026
    Release notes
    • Add spinlock implementation to intrusive.rs.
    • Remove slab-based implementation of event-listener. #109
    • Fix unbounded Send/Sync implementations on StackSlot. #163
    • Misc. internal improvements.
    Open source →
    Release notes
    • Add spinlock implementation to intrusive.rs.
    • Remove slab-based implementation of event-listener. #109
    • Fix unbounded Send/Sync implementations on StackSlot. #163
    • Misc. internal improvements.
    Open source →
  2. 5.4.1 03 Aug 2025
    Release notes
    • Fix a copy-paste error in wait_timeout docs (#152)
    Open source →
    Release notes
    • Fix a copy-paste error in wait_timeout docs (#152)
    Open source →
  3. 5.4.0 08 Jan 2025
    Release notes
    • Add a no_std implementation based on the critical-section crate, enabled
      via the feature of the same name. (#148)
    Open source →
    Release notes
    • Add a no_std implementation based on the critical-section crate, enabled via the feature of the same name. (#148)
    Open source →
  4. 5.3.1 29 May 2024
    Release notes
    • Disable some optimizations that, in rare conditions, can cause race conditions
      causing notifications to be dropped. (#139)
    • Ensure the portable-atomic feature is set properly. (#134)
    • Update portable-atomic-util to v0.2.0. (#132)
    • Document the std feature. (#134)
    Open source →
    Release notes
    • Disable some optimizations that, in rare conditions, can cause race conditions causing notifications to be dropped. (#139)
    • Ensure the portable-atomic feature is set properly. (#134)
    • Update portable-atomic-util to v0.2.0. (#132)
    • Document the std feature. (#134)
    Open source →
  5. 5.3.0 05 Apr 2024
    Release notes
    • Add a loom implementation. This feature is unstable and is not semver-supported. (#126)
    • Make the panic message for polling the EventListener after it has completed more clear. (#125)
    Open source →
    Release notes
    • Add a loom implementation. This feature is unstable and is not semver-supported. (#126)
    • Make the panic message for polling the EventListener after it has completed more clear. (#125)
    Open source →
  6. 5.2.0 29 Feb 2024
    Release notes
    • Make StackSlot Sync. (#121)
    Open source →
    Release notes
    • Make StackSlot Sync. (#121)
    Open source →
  7. 5.1.0 18 Feb 2024
    Release notes
    • Make StackSlot Send. (#119)
    Open source →
    Release notes
    • Make StackSlot Send. (#119)
    Open source →
  8. 5.0.0 05 Feb 2024
    Release notes
    • Breaking: Rework the API to afford better usage. (#105)
      • The heap-based API of the v2.x line is back.
      • However, there is a stack-based API as an alternative.
    • Add a way to get the total number of listeners. (#114)
    Open source →
    Release notes
    • Breaking: Rework the API to afford better usage. (#105)
      • The heap-based API of the v2.x line is back.
      • However, there is a stack-based API as an alternative.
    • Add a way to get the total number of listeners. (#114)
    Open source →
  9. 4.0.3 06 Jan 2024
    Release notes
    • Relax MSRV to 1.60. (#110)
    Open source →
    Release notes
    • Relax MSRV to 1.60. (#110)
    Open source →
  10. 4.0.2 01 Jan 2024
    Release notes
    • Avoid spinning in wait_deadline. (#107)
    Open source →
    Release notes
    • Avoid spinning in wait_deadline. (#107)
    Open source →
  11. 4.0.1 19 Dec 2023
    Release notes
    • Fix a use-after-move error after an EventListener is assigned to listen to another Event. (#101)
    Open source →
  12. 4.0.0 19 Nov 2023
    Release notes
    • Breaking: Fix a footgun in the EventListener type. EventListener::new() now no longer takes an &Event as an argument, and EventListener::listen() takes the &Event as an argument. Hopefully this should prevent .awaiting on a listener without making sure it's listening first. (#94)
    Open source →
  13. 3.1.0 13 Nov 2023
    Release notes
    • Implement UnwindSafe and RefUnwindSafe for EventListener. This was unintentionally removed in version 3 (#96).
    Open source →
  14. 3.0.1 29 Oct 2023
    Release notes
    • Emphasize that listen() must be called on EventListener in documentation. (#90)
    • Write useful output in fmt::Debug implementations. (#86)
    Open source →
  15. 3.0.0 10 Sep 2023
    Release notes
    • Use the parking crate instead of threading APIs (#27)
    • Bump MSRV to 1.59 (#71)
    • Breaking: Make this crate no_std-compatible on default-features = false. (#34)
    • Create a new event-listener-strategy crate for abstracting over blocking/non-blocking operations. (#49)
    • Breaking: Change the EventListener API to be !Unpin. (#51)
    • Enable a feature for the portable-atomic crate. (#53)
    • Breaking: Add a Notification trait which is used to enable tagged events. (#52)
    • Add an is_notified() method to Event. (#48)
    • Breaking: Make it so notify() returns the number of listeners notified. (#57)
    Open source →
  16. 2.5.3 27 Jul 2022
    Release notes
    • Fix fence on x86 and miri.
    Open source →
  17. 2.5.2 22 Jan 2022
    Release notes
    • Fix stacked borrows violation when -Zmiri-tag-raw-pointers is enabled. (#24)
    Open source →
  18. 2.5.1 22 Sep 2020
    Release notes
    • Replace spinlock with a mutex.
    Open source →
  19. 2.5.0 22 Sep 2020
    Release notes
    • Add EventListener::discard().
    Open source →
  20. 2.4.0 20 Aug 2020
    Release notes
    • Event::new() is now a const fn.
    Open source →
  21. 2.3.3 07 Aug 2020
    Release notes
    • Fix a bug in List::insert() that was causing deadlocks.
    Open source →
  22. 2.3.2 05 Aug 2020
    Release notes
    • Optimization: use a simple spinlock and cache an Entry for less allocation.
    Open source →
  23. 2.3.1 05 Aug 2020
    Release notes
    • Optimization: don't initialize Inner when notifying Event.
    Open source →
  24. 2.3.0 31 Jul 2020
    Release notes
    • Implement UnwindSafe/RefUnwindSafe for Event/EventListener.
    Open source →
  25. 2.2.1 24 Jul 2020
    Release notes
    • Always keep the last waker in EventListener::poll().
    Open source →
  26. 2.2.0 02 Jul 2020
    Release notes
    • Add EventListener::same_event().
    Open source →
  27. 2.1.0 02 Jul 2020
    Release notes
    • Add EventListener::listens_to().
    Open source →
  28. 2.0.1 24 Jun 2020
    Release notes
    • Replace usize::MAX with std::usize::MAX.
    Open source →
  29. 2.0.0 27 May 2020
    Release notes
    • Remove Event::notify_one() and Event::notify_all().
    • Add Event::notify_relaxed() and Event::notify_additional_relaxed().
    • Dropped notified EventListener now notifies one or one additional listener.
    Open source →
  30. 1.2.0 25 May 2020
    Release notes
    • Add Event::notify_additional().
    Open source →
  31. 1.1.2 25 May 2020
    Release notes
    • Change a Relaxed load to Acquire load.
    Open source →
  32. 1.1.1 25 May 2020
    Release notes
    • Fix a bug in EventListener::wait_timeout().
    Open source →
  33. 1.1.0 24 May 2020
    Release notes
    • Add EventListener::notify().
    Open source →
  34. 1.0.1 20 May 2020
    Release notes
    • Reduce the complexity of notify_all() from O(n) to amortized O(1).
    • Fix a bug where entries were notified in wrong order.
    • Add tests.
    Open source →
  35. 1.0.0 16 May 2020
    Release notes
    • Initial version.
    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