Skip to content

Releases: mgeier/rtrb

rtrb 0.3.1

26 May 13:37
Compare
Choose a tag to compare

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

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

12 Nov 19:28
Compare
Choose a tag to compare

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 to crossbeam_utils::CachePadded

rtrb 0.2.3

13 Dec 22:06
Compare
Choose a tag to compare

https://crates.io/crates/rtrb/0.2.3

  • Add explicit lifetime to copy_to_uninit()

rtrb 0.2.2

04 Mar 19:11
Compare
Choose a tag to compare

https://crates.io/crates/rtrb/0.2.2

  • Implement Send for chunk types
  • WriteChunk: use PhantomData<T>

rtrb 0.2.1

09 Jan 21:21
Compare
Choose a tag to compare

https://crates.io/crates/rtrb/0.2.1

  • Fix dropping behavior in WriteChunk

rtrb 0.2.0

20 Sep 19:29
Compare
Choose a tag to compare

Breaking Changes

  • split() has been removed, new() returns a (Producer, Consumer) pair
    • a RingBuffer cannot be owned anymore (but Producer and Consumer still can)
    • previous uses of split() can simply be removed
  • new chunks module
    • simplifies the main documentation page
    • no code changes should be needed, except that ChunkError has to be imported as chunks::ChunkError
  • iterator API has been changed to allow moving items in and out
    • read chunks implement IntoIterator and can be directly used in for loops or can be explicitly turned into an iterator with into_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 by as_slices() and as_mut_slices() (use chain() to iterate over both slices)
  • with_chunks() constructor has been removed
    • there is no replacement, use new() instead
  • 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 from write_chunk() (Default is still required)
  • some auto-derived Debug, Eq and PartialEq implementations have been added

rtrb 0.1.4

04 Jun 18:08
Compare
Choose a tag to compare

https://crates.io/crates/rtrb/0.1.4

  • add is_abandoned() method to producer and consumer

rtrb 0.1.3

14 Apr 11:38
Compare
Choose a tag to compare

rtrb 0.1.2

19 Dec 10:51
Compare
Choose a tag to compare

https://crates.io/crates/rtrb/0.1.2

  • Documentation updates and minor optimization in Drop impl

rtrb 0.1.1

20 Nov 09:04
Compare
Choose a tag to compare

https://crates.io/crates/rtrb/0.1.1

  • Don't expose Producer::buffer and Consumer::buffer fields; provide buffer() methods instead. This fixes a soundness problem, see #26.