atomic_ring_buffer

Crates.ioatomic_ring_buffer
lib.rsatomic_ring_buffer
version1.0.0
sourcesrc
created_at2017-01-31 11:53:18.774841
updated_at2017-01-31 11:53:18.774841
descriptionA fixed-size multi-producer multi-consumer queue that works on bare-metal systems.
homepagehttps://github.com/m-labs/atomic_ring_buffer
repositoryhttps://github.com/m-labs/atomic_ring_buffer.git
max_upload_size
id8321
size22,402
whitequark (whitequark)

documentation

https://docs.rs/atomic_ring_buffer/

README

atomic_ring_buffer

atomic ring buffer is a fixed-size multi-producer multi-consumer queue that works on bare-metal systems. Under certain conditions, the queue is wait-free or lock-free.

See documentation for details.

Installation

To use the atomic ring buffer library in your project, add the following to Cargo.toml:

[dependencies]
atomic_ring_buffer = "1.0"

Feature std

The std feature enables use std::boxed::Box and std::vec::Vec for the backing storage.

This feature is enabled by default.

Feature alloc

The alloc feature enables use of alloc::boxed::Box for the backing storage. This only works on nightly rustc.

Feature collections

The collections feature enables use of collections::vec::Vec for the backing storage. This only works on nightly rustc.

Feature const_fn

The const_fn feature marks the AtomicRingBuffer::new function as constant, permitting static initialization akin to:

static UART_BUFFER: AtomicRingBuffer = AtomicRingBuffer::new([u8; 32]);

This only works on nightly rustc.

License

atomic ring buffer is distributed under the terms of 0-clause BSD license.

See LICENSE-0BSD for details.

Commit count: 0

cargo fmt