PackageTrack
Sign in Get early access

async-lock

Async synchronization primitives

3.4.2 272M downloads/mo #391 most downloaded on crates.io smol-rs/async-lock

What this package is like to depend on

Last release 8 months ago

21 Dec 2025

Release timing varies

gaps range from 8 days to 1.2 years

Nearly every release is documented

notes for 31 of 32 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

32 releases · first in 2019

1 release in the last 12 months

see the full history below

Release timeline

32 releases · May 2019 to Dec 2025
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 32
  1. 3.4.2 21 Dec 2025
    Release notes
    • Bump MSRV to 1.85. (#103)
    • Use Waker::noop() to avoid some unsafe code. (#103)
    Open source →
    Release notes
    • Bump MSRV to 1.85. (#103)
    • Use Waker::noop() to avoid some unsafe code. (#103)
    Open source →
  2. 3.4.1 03 Aug 2025
    Release notes
    • Fix typos in docs. (#89)
    Open source →
    Release notes
    • Fix typos in docs. (#89)
    Open source →
  3. 3.4.0 01 Jun 2024
    Release notes
    • Port to event-listener v5.0.0. (#74)
    Open source →
    Release notes
    • Port to event-listener v5.0.0. (#74)
    Open source →
  4. 3.3.0 10 Jan 2024
    Release notes
    • Add a forget() method for semaphore guards. (#73)
    • Increase MSRV to v1.60. (#75)
    Open source →
    Release notes
    • Add a forget() method for semaphore guards. (#73)
    • Increase MSRV to v1.60. (#75)
    Open source →
  5. 3.2.0 02 Dec 2023
    Release notes
    • Add missing methods for blocking on locking with types wrapped in Arc (#71).
    Open source →
    Release notes
    • Add missing methods for blocking on locking with types wrapped in Arc (#71).
    Open source →
  6. 3.1.2 24 Nov 2023
    Release notes
    • Bump event-listener to version v4.0.0. (#69)
    Open source →
    Release notes
    • Bump event-listener to version v4.0.0. (#69)
    Open source →
  7. 3.1.1 19 Nov 2023
    Release notes
    • Add a note to the documentation comparing this crate against libstd's locks. (#58)
    Open source →
    Release notes
    • Add a note to the documentation comparing this crate against libstd's locks. (#58)
    Open source →
  8. 3.1.0 13 Nov 2023
    Release notes
    • Add a Default implementation for OnceCell (#63).
    Open source →
    Release notes
    • Add a Default implementation for OnceCell (#63).
    Open source →
  9. 3.0.0 24 Oct 2023
    Release notes
    • Breaking: Add an enabled-by-default std feature that allows using this crate without the standard library. (#43)
    • Support blocking and non-blocking operations on the same locks. (#56)
    • Switch to a more efficient event notification mechanism. (#43)
    Open source →
    Release notes
    • Breaking: Add an enabled-by-default std feature that allows using this crate without the standard library. (#43)
    • Support blocking and non-blocking operations on the same locks. (#56)
    • Switch to a more efficient event notification mechanism. (#43)
    Open source →
  10. 2.8.0 10 Aug 2023
    Release notes
    • Fix a bug where the SemaphoreGuard::acquire_arc future would busy wait under certain conditions (#42).
    • Add a Semaphore::add_permits() function to increase the number of available permits on the semaphore (#44).
    • Make RwLockReadGuard covariant over its lifetime (#45)
    • Add RwLockReadGuardArc, RwLockWriteGuardArc, and other reference counted guards for the RwLock type (#47).
    • Loosen the Send/Sync bounds on certain future types (#48).
    • Fix UB caused by the MutexGuardArc::source function allowing the user to drop an object in a different thread than the one it was acquired in (#50). This is a breaking change, but in the name of soundness. Therefore it doesn't break any valid behavior.
    • Fix a bug where this crate would not compile properly on wasm64 (#51).
    Open source →
    Release notes
    • Fix a bug where the SemaphoreGuard::acquire_arc future would busy wait under certain conditions (#42).
    • Add a Semaphore::add_permits() function to increase the number of available permits on the semaphore (#44).
    • Make RwLockReadGuard covariant over its lifetime (#45)
    • Add RwLockReadGuardArc, RwLockWriteGuardArc, and other reference counted guards for the RwLock type (#47).
    • Loosen the Send/Sync bounds on certain future types (#48).
    • Fix UB caused by the MutexGuardArc::source function allowing the user to drop an object in a different thread than the one it was acquired in (#50). This is a breaking change, but in the name of soundness. Therefore it doesn't break any valid behavior.
    • Fix a bug where this crate would not compile properly on wasm64 (#51).
    Open source →
  11. 2.7.0 02 Mar 2023
    Release notes
    • Replace some async blocks with manual futures (#34)
    • Remove our dependency on futures-lite (#36)
    • Mark guard types with #[clippy::has_significant_drop] (#37)
    Open source →
  12. 2.6.0 25 Oct 2022
    Release notes
    • Add OnceCell. (#27)
    • Support wasm64.
    Open source →
  13. 2.5.0 19 Feb 2022
    Release notes
    • Fix an issue where the future returned by Mutex::lock_arc/Semaphore::acquire_arc holds a reference to self. (#20, #21)
    Open source →
  14. 2.4.0 16 Apr 2021
    Release notes
    • Add WASM support. (#14)
    Open source →
  15. 2.3.0 09 Oct 2020
    Release notes
    • Merge all subcrates.
    Open source →
  16. 2.2.0 22 Sep 2020
    Release notes
    • Add functions to upgrade and downgrade RwLock guards.
    • Make all constructors const fn.
    Open source →
  17. 2.1.3 15 Sep 2020
    Release notes
    • Add #![forbid(unsafe_code)].
    Open source →
  18. 2.1.2 07 Sep 2020
    Release notes
    • Update dependencies.
    Open source →
  19. 2.1.1 29 Aug 2020
    Release notes
    • Update crate description.
    Open source →
  20. 2.1.0 29 Aug 2020
    Release notes
    • Add Barrier and Semaphore.
    Open source →
  21. 2.0.1 26 Aug 2020
    Release notes
    • Update crate description.
    Open source →
  22. 2.0.0 26 Aug 2020
    Release notes
    • Only re-export async-mutex and async-rwlock.
    Open source →
  23. 1.1.5 20 Aug 2020
    Release notes
    • Replace the implementation with async-mutex.
    Open source →
  24. 1.1.4 24 Jun 2020
    Release notes
    • Replace usize::MAX with std::usize::MAX.
    Open source →
  25. 1.1.3 23 Jun 2020
    Release notes
    • Update dependencies.
    Open source →
  26. 1.1.2 26 May 2020
    Release notes
    • Fix a deadlock issue.
    Open source →
  27. 1.1.1 25 May 2020
    Release notes
    • Fix some typos.
    Open source →
  28. 1.1.0 25 May 2020
    Release notes
    • Make locking fair.
    • Add LockGuard::source().
    Open source →
  29. 1.0.2 20 May 2020
    Release notes
    • Bump the event-listener version.
    • Add tests.
    Open source →
  30. 1.0.1 17 May 2020
    Release notes
    • Update Cargo categories.
    Open source →
  31. 1.0.0 17 May 2020
    Release notes
    • Initial version
    Open source →
  32. 0.1.0 22 May 2019

    Nothing published for this version

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