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
Releases
latest 35-
5.4.227 Jul 2026Release notes
Open source →- 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.
-
5.4.103 Aug 2025 -
5.4.008 Jan 2025Release notes
Open source →- Add a
no_stdimplementation based on thecritical-sectioncrate, enabled
via the feature of the same name. (#148)
Release notes
Open source →- Add a
no_stdimplementation based on thecritical-sectioncrate, enabled via the feature of the same name. (#148)
- Add a
-
5.3.129 May 2024Release notes
Open source →- 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-utilto v0.2.0. (#132) - Document the std feature. (#134)
-
5.3.005 Apr 2024Release notes
Open source →- Add a
loomimplementation. This feature is unstable and is not semver-supported. (#126) - Make the panic message for polling the
EventListenerafter it has completed more clear. (#125)
- Add a
-
5.2.029 Feb 2024 -
5.1.018 Feb 2024 -
5.0.005 Feb 2024Release notes
Open source →- 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)
- Breaking: Rework the API to afford better usage. (#105)
-
4.0.306 Jan 2024 -
4.0.201 Jan 2024 -
4.0.119 Dec 2023Release notes
Open source →- Fix a use-after-move error after an
EventListeneris assigned to listen to anotherEvent. (#101)
- Fix a use-after-move error after an
-
4.0.019 Nov 2023Release notes
Open source →- Breaking: Fix a footgun in the
EventListenertype.EventListener::new()now no longer takes an&Eventas an argument, andEventListener::listen()takes the&Eventas an argument. Hopefully this should prevent.awaiting on a listener without making sure it's listening first. (#94)
- Breaking: Fix a footgun in the
-
3.1.013 Nov 2023Release notes
Open source →- Implement
UnwindSafeandRefUnwindSafeforEventListener. This was unintentionally removed in version 3 (#96).
- Implement
-
3.0.129 Oct 2023Release notes
Open source →- Emphasize that
listen()must be called onEventListenerin documentation. (#90) - Write useful output in
fmt::Debugimplementations. (#86)
- Emphasize that
-
3.0.010 Sep 2023Release notes
Open source →- Use the
parkingcrate instead of threading APIs (#27) - Bump MSRV to 1.59 (#71)
- Breaking: Make this crate
no_std-compatible ondefault-features = false. (#34) - Create a new
event-listener-strategycrate for abstracting over blocking/non-blocking operations. (#49) - Breaking: Change the
EventListenerAPI to be!Unpin. (#51) - Enable a feature for the
portable-atomiccrate. (#53) - Breaking: Add a
Notificationtrait which is used to enable tagged events. (#52) - Add an
is_notified()method toEvent. (#48) - Breaking: Make it so
notify()returns the number of listeners notified. (#57)
- Use the
-
2.5.327 Jul 2022 -
2.5.222 Jan 2022Release notes
Open source →- Fix stacked borrows violation when
-Zmiri-tag-raw-pointersis enabled. (#24)
- Fix stacked borrows violation when
-
2.5.122 Sep 2020 -
2.5.022 Sep 2020 -
2.4.020 Aug 2020 -
2.3.307 Aug 2020 -
2.3.205 Aug 2020Release notes
Open source →- Optimization: use a simple spinlock and cache an
Entryfor less allocation.
- Optimization: use a simple spinlock and cache an
-
2.3.105 Aug 2020 -
2.3.031 Jul 2020 -
2.2.124 Jul 2020 -
2.2.002 Jul 2020 -
2.1.002 Jul 2020 -
2.0.124 Jun 2020 -
2.0.027 May 2020Release notes
Open source →- Remove
Event::notify_one()andEvent::notify_all(). - Add
Event::notify_relaxed()andEvent::notify_additional_relaxed(). - Dropped notified
EventListenernow notifies one or one additional listener.
- Remove
-
1.2.025 May 2020 -
1.1.225 May 2020 -
1.1.125 May 2020 -
1.1.024 May 2020 -
1.0.120 May 2020Release notes
Open source →- 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.
- Reduce the complexity of
-
1.0.016 May 2020