NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #811 most downloaded on crates.io
Synchronization primitives built with portable-atomic.
Last release 1 months ago
04 Sep 2026
Release timing varies
gaps range from 3 weeks to 1.2 years
Nearly every release is documented
notes for 10 of 10 stable releases
5 versions withdrawn
withdrawn after publishing
4 years old
15 releases · first in 2023
One column per quarter.
Increase the minimum supported Rust version from Rust 1.34 to Rust 1.36. Using the alloc feature without the std feature already required Rust 1.36, s
Increase the minimum supported Rust version from Rust 1.34 to Rust 1.36. Using the alloc feature without the std feature already required Rust 1.36, so this does not change anything for such no-std use cases. (#8)
Add Arc::map. (align to the std Arc change in Rust 1.100) (#10, thanks @c410-f3r)
Fix thread sanitizer false positives when using x86_64-unknown-linux-gnutsan target in stable Rust. (e02eca7)
Implement serde serialization and deserialization for Arc , gated behind "serde" feature. ( #2 , thanks @tommasoclini )
Arc, gated behind "serde" feature. (#2, thanks @tommasoclini)portable-atomic-util has been extracted from the portable-atomic repository into its own repository: https://github.com/taiki-e/portable-atomic-util
portable-atomic-util has been extracted from the portable-atomic repository into its own repository: https://github.com/taiki-e/portable-atomic-util
Add Arc::{new_zeroed,new_zeroed_slice} at Rust 1.36+. (align to the std Arc change in Rust 1.92 ) ( f8affb6 , ae5aba7 )
Add Arc::{new_zeroed,new_zeroed_slice} at Rust 1.36+. (align to the std Arc change in Rust 1.92) (f8affb6, ae5aba7)
Implement Default for Pin<Arc<T>: Default>. (align to the std Arc change in Rust 1.91) (2d8d33c)
Implement From<&mut {[T],str}> for Arc<{[T],str}> at Rust 1.36+. (align to the std Arc change in Rust 1.84) (99640d6, ae5aba7)
Implement {AsFd, AsRawFd} for Arc<T> on Trusty. (1b09ffb)
Support slice-related methods that previously required Rust 1.44+ at Rust 1.36+. (ae5aba7)
Support AsRawFd for Arc<T> implementation on Unix in all Rust versions. Previously, it was only for Rust 1.63+. (1b09ffb)
Fix build error when building for HermitOS with std feature in Rust 1.63-1.68. (1b09ffb)
Documentation improvements.
Enable release immutability.
Add Arc::{new_zeroed,new_zeroed_slice} at Rust 1.36+. (align to the std Arc change in Rust 1.92) (f8affb6, ae5aba7)
Implement Default for Pin<Arc<T>: Default>. (align to the std Arc change in Rust 1.91) (2d8d33c)
Implement From<&mut {[T],str}> for Arc<{[T],str}> at Rust 1.36+. (align to the std Arc change in Rust 1.84) (99640d6, ae5aba7)
Implement {AsFd, AsRawFd} for Arc<T> on Trusty. (1b09ffb)
Support slice-related methods that previously required Rust 1.44+ at Rust 1.36+. (ae5aba7)
Support AsRawFd for Arc<T> implementation on Unix in all Rust versions. Previously, it was only for Rust 1.63+. (1b09ffb)
Fix build error when building for HermitOS with std feature in Rust 1.63-1.68. (1b09ffb)
Documentation improvements.
Enable release immutability.
Add unstable portable_atomic_unstable_coerce_unsized cfg (requires Rust nightly). ( #195 , thanks @brodycj)
Add unstable portable_atomic_unstable_coerce_unsized cfg (requires Rust nightly). (#195, thanks @brodycj)
Respect RUSTC_BOOTSTRAP=-1 recently added in nightly in rustc version detection. (5b2847a)
Add Arc::{new_uninit,assume_init} at Rust 1.36+ and Arc::new_uninit_slice at Rust 1.44+. (align to the std Arc change in Rust 1.82 )
Add Arc::{new_uninit,assume_init} at Rust 1.36+ and Arc::new_uninit_slice at Rust 1.44+. (align to the std Arc change in Rust 1.82) (362dc9a)
Support make_mut on Arc<[T]> and Arc<str> at Rust 1.36+. (align to the std Arc change in Rust 1.81) (362dc9a)
Add Arc::{new_uninit,assume_init} at Rust 1.36+ and Arc::new_uninit_slice at Rust 1.44+. (align to the std Arc change in Rust 1.82) (362dc9a)
Support make_mut on Arc<[T]> and Arc<str> at Rust 1.36+. (align to the std Arc change in Rust 1.81) (362dc9a)
Fix build issue with esp toolchain .
Support impl Error for Arc<T: Error> in no-std at Rust 1.81+.
Support impl Error for Arc<T: Error> in no-std at Rust 1.81+. (30b9f90)
Implement Default for Arc<[T]> and Arc<str> at Rust 1.51+. (align to the std Arc change in Rust 1.80) (c6ee296)
Implement {AsFd, AsRawFd} for Arc<T> on HermitOS. (b778244)
Note: This release has been yanked due to an issue fixed in 0.2.2.
Support impl Error for Arc<T: Error> in no-std at Rust 1.81+. (30b9f90)
Implement Default for Arc<[T]> and Arc<str> at Rust 1.51+. (align to the std Arc change in Rust 1.80) (c6ee296)
Implement {AsFd, AsRawFd} for Arc<T> on HermitOS. (b778244)
Rewrite Arc based on std::Arc 's implementation.
Rewrite Arc based on std::sync::Arc's implementation. (#142)
This fixes accidental API differences with std (#139, #140) and adds many missing APIs compared to std:
Arc::{downcast, into_inner, make_mut, new_cyclic} (#142){fmt::Display, fmt::Pointer, Error, From<T>, From<Box<T>>, From<Cow<'a,T>>, AsFd, AsRawFd, AsHandle, AsSocket} for Arc<T> (#142, 78690d7, aba0930){From<&[T]>, From<Vec<T>>, From<[T; N]>, FromIterator<T>} for Arc<[T]> (#142, 5e9f693)TryFrom<Arc<[T]>> for Arc<[T; N]> (#142)From<Arc<str>> for Arc<[u8]> (#142){From<&str>, From<String>} for Arc<str> (#142){Read, Write, Seek} for Arc<File> (591ece5)T: UnwindSafe bound from impl UnwindSafe for Arc<T> (#142)Add task::Wake. (#145)
This is equivalent to std::task::Wake, but using portable_atomic_util::Arc as a reference-counted pointer.
Respect RUSTC_WRAPPER in rustc version detection.
Rewrite Arc based on std::sync::Arc's implementation. (#142)
This fixes accidental API differences with std (#139, #140) and adds many missing APIs compared to std:
Arc::{downcast, into_inner, make_mut, new_cyclic} (#142){fmt::Display, fmt::Pointer, Error, From<T>, From<Box<T>>, From<Cow<'a,T>>, AsFd, AsRawFd, AsHandle, AsSocket} for Arc<T> (#142, 78690d7, aba0930){From<&[T]>, From<Vec<T>>, From<[T; N]>, FromIterator<T>} for Arc<[T]> (#142, 5e9f693)TryFrom<Arc<[T]>> for Arc<[T; N]> (#142)From<Arc<str>> for Arc<[u8]> (#142){From<&str>, From<String>} for Arc<str> (#142){Read, Write, Seek} for Arc<File> (591ece5)T: UnwindSafe bound from impl UnwindSafe for Arc<T> (#142)Add task::Wake. (#145)
This is equivalent to std::task::Wake, but using portable_atomic_util::Arc as a reference-counted pointer.
Respect RUSTC_WRAPPER in rustc version detection.
Improve offset calculation in Arc::{into_raw,as_ptr,from_ptr} . ( #141 , thanks @gtsiam )
Fix a bug where Arc::{into_raw,as_ptr} returned invalid pointers for larger alignment types. ( #138 , thanks @notgull )
Note: This release has been yanked due to a bug fixed in 0.1.4.
Note: This release has been yanked due to a bug fixed in 0.1.4.
portable-atomic's require-cas feature to display helpful error messages to users on targets requiring additional action on the user side to provide atomic CAS. (#100)Note: This release has been yanked due to a bug fixed in 0.1.4.
Note: This release has been yanked due to a bug fixed in 0.1.4.
Note: This release has been yanked due to a bug fixed in 0.1.4.
Prevent weak counter overflow in Arc::downgrade. (#83)
This fixes a potential unsoundness recently found in the standard library's Arc.
Note: This release has been yanked due to a bug fixed in 0.1.4.
Note: This release has been yanked due to a bug fixed in 0.1.4.
Initial release
Your coding agent can read these notes before it upgrades. Set up the MCP server →