Crates.io | fring |
lib.rs | fring |
version | 0.3.3 |
source | src |
created_at | 2023-08-18 20:24:55.525313 |
updated_at | 2023-08-28 14:56:01.255914 |
description | Lightweight, no_std, and *fast* ring buffer |
homepage | |
repository | https://github.com/dlaw/fring/ |
max_upload_size | |
id | 948202 |
size | 24,963 |
fring
("fast ring") is a fast, lightweight circular buffer, designed
for embedded systems and other no_std targets. The memory footprint
is the buffer itself plus two usize
indices, and that's it. The
buffer allows a single producer and a single consumer, which may
operate concurrently. Memory safety and thread safety are enforced at
compile time; the buffer is lock-free at runtime. The buffer length
is required to be a power of two, and the only arithmetic operations
used by buffer operations are addition/subtraction and bitwise-and.
Compared to other Rust ring buffers (such as
bbqueue), fring
is
less flexible, but offers reduced storage and computational overhead.