Releases: mgeier/rtrb
Releases · mgeier/rtrb
rtrb 0.3.2
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
rtrb 0.3.1
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 the rtrb version), see #114.
rtrb 0.3.0
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
rtrb 0.2.3
https://crates.io/crates/rtrb/0.2.3
- Add explicit lifetime to
copy_to_uninit()
rtrb 0.2.2
https://crates.io/crates/rtrb/0.2.2
- Implement
Sendfor chunk types WriteChunk: usePhantomData<T>
rtrb 0.2.1
https://crates.io/crates/rtrb/0.2.1
- Fix dropping behavior in
WriteChunk
rtrb 0.2.0
Breaking Changes
split()has been removed,new()returns a(Producer, Consumer)pair- a
RingBuffercannot be owned anymore (butProducerandConsumerstill can) - previous uses of
split()can simply be removed
- a
- new
chunksmodule- simplifies the main documentation page
- no code changes should be needed, except that
ChunkErrorhas to be imported aschunks::ChunkError
- iterator API has been changed to allow moving items in and out
- read chunks implement
IntoIteratorand can be directly used inforloops or can be explicitly turned into an iterator withinto_iter() - uninitialized write chunks provide a
fill_from_iter()method that moves items from an iterator into the ring buffer Default-initialized write chunks don't provide an iterator API (just use uninitialized chunks instead)- the previous iterator API with items of type
&T,&mut Tand&mut MaybeUninit<T>is not available anymore, but it can be emulated by iterating over the slices returned byas_slices()andas_mut_slices()(use chain() to iterate over both slices)
- read chunks implement
with_chunks()constructor has been removed- there is no replacement, use
new()instead
- there is no replacement, use
reset()has been removed- there is no replacement
CopyToUninit::copy_to_uninit()now returns&mut [T]- this is strictly speaking a breaking change, but it's unlikely that anyone relied on it returning nothing
Non-Breaking Changes
Copytrait bound has been removed fromwrite_chunk()(Defaultis still required)- some auto-derived
Debug,EqandPartialEqimplementations have been added
rtrb 0.1.4
https://crates.io/crates/rtrb/0.1.4
- add
is_abandoned()method to producer and consumer
rtrb 0.1.3
https://crates.io/crates/rtrb/0.1.3
- add
#![no_std]support
rtrb 0.1.2
https://crates.io/crates/rtrb/0.1.2
- Documentation updates and minor optimization in
Dropimpl