rtrb
A realtime-safe single-producer single-consumer ring buffer
0.4.0
10M downloads/mo
#3058 most downloaded on crates.io
mgeier/rtrb
What this package is like to depend on
Last release 5 days ago
18 Aug 2026
Ships fairly regularly
a new release about every 4 months
Most releases are documented
notes for 10 of 15 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
16 releases · first in 2020
4 releases in the last 12 months
see the full history below
Release timeline
16 releases · Nov 2020 to Aug 2026Releases
latest 16-
0.4.017 Aug 2026Release notes
Open source →https://crates.io/crates/rtrb/0.4.0
Breaking Changes
- restore synchronization behavior of
is_abandoned()(by replacingArc)- dropping a
Producer/Consumeron one thread now synchronizes again with callingis_abandoned()on another thread, independent of Rust version
- dropping a
Bug-Fixes
- make
ReadChunk::commit()/commit_all()panic-safe (avoid UB caused by double-free)
- restore synchronization behavior of
-
0.3.518 Aug 2026Release notes
Open source →https://crates.io/crates/rtrb/0.3.5
This is a bug-fix release to fix this:
- make ReadChunk::commit()/commit_all() panic-safe (avoid UB caused by double-free)
If you want the newest (at the time or writing) release, use 0.4.0.
-
0.3.426 Apr 2026Release notes
Open source →https://crates.io/crates/rtrb/0.3.4
- add
ReadChunkIntoIter::iterated() - use
must_usein*_partial_slice()- this is not a breaking change, but an additional warning might appear
- add
-
0.3.324 Feb 2026Release notes
Open source →https://crates.io/crates/rtrb/0.3.3
- add
push_partial_slice(),pop_partial_slice(),push_entire_slice(),pop_entire_slice() - add
cached_slots()
- add
-
0.3.204 Jan 2025Release notes
Open source →https://crates.io/crates/rtrb/0.3.2
- Update crossbeam submodule
- Revert to caching both head and tail index
- This fixes a performance regression on AMD CPUs, see #132
-
0.3.126 May 2024Release notes
Open source →https://crates.io/crates/rtrb/0.3.1
- update benchmarks, add performance comparison between crates
- Don't cache head/tail index in Consumer/Producer
- Use CachePadded from crossbeam submodule
- to avoid MSRV bump, see crossbeam-rs/crossbeam#1066
Note that the behavior of the
is_abandoned()method has changed in Rust 1.74.0 (which is independent of thertrbversion), see #114. -
0.3.012 Nov 2023Release notes
Open source →https://crates.io/crates/rtrb/0.3.0
- add
ReadChunk::as_mut_slices() - bump minimum supported Rust version (MSRV) to 1.38
- Change deprecated
cache_padded::CachePaddedtocrossbeam_utils::CachePadded
- add
-
0.2.313 Dec 2022Release notes
Open source →https://crates.io/crates/rtrb/0.2.3
- Add explicit lifetime to
copy_to_uninit()
- Add explicit lifetime to
-
0.2.204 Mar 2022Release notes
Open source →https://crates.io/crates/rtrb/0.2.2
- Implement
Sendfor chunk types WriteChunk: usePhantomData<T>
- Implement
-
0.2.109 Jan 2022 -
0.2.020 Sep 2021Nothing published for this version
-
0.1.404 Jun 2021Nothing published for this version
-
0.1.314 Apr 2021Nothing published for this version
-
0.1.219 Dec 2020Nothing published for this version
-
0.1.120 Nov 2020Nothing published for this version
-
0.1.018 Nov 2020 withdrawnNothing published for this version