Releases: mgeier/rtrb
Releases · mgeier/rtrb
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::CachePadded
tocrossbeam_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
Send
for 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
RingBuffer
cannot be owned anymore (butProducer
andConsumer
still can) - previous uses of
split()
can simply be removed
- a
- new
chunks
module- simplifies the main documentation page
- no code changes should be needed, except that
ChunkError
has to be imported aschunks::ChunkError
- iterator API has been changed to allow moving items in and out
- read chunks implement
IntoIterator
and can be directly used infor
loops 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 T
and&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
Copy
trait bound has been removed fromwrite_chunk()
(Default
is still required)- some auto-derived
Debug
,Eq
andPartialEq
implementations 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
Drop
impl
rtrb 0.1.1
https://crates.io/crates/rtrb/0.1.1
- Don't expose
Producer::buffer
andConsumer::buffer
fields; providebuffer()
methods instead. This fixes a soundness problem, see #26.