ourobuf 0.1.1

A no_std circular buffer with constant-time operations
Documentation
  • Coverage
  • 100%
    11 out of 11 items documented3 out of 11 items with examples
  • Size
  • Source code size: 14.52 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.19 MB This is the summed size of all files generated by rustdoc for all configured targets
  • ร˜ build duration
  • this release: 11s Average build duration of successful builds.
  • all releases: 11s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • xvi-xv-xii-ix-xxii-ix-xiv/ourobuf
    2 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • xvi-xv-xii-ix-xxii-ix-xiv

๐ŸŒ€ Ourobuf

Crates.io Docs.rs License

Thread-safe circular buffer for embedded systems and high-performance applications

Features โœจ

  • ๐Ÿ›ก๏ธ 100% Safe Rust with no_std support
  • โšก Constant-time O(1) operations
  • ๐Ÿ”’ Spinlock-based thread safety
  • ๐Ÿ“ Configurable size via const generics
  • ๐Ÿ”„ Heapless Vec integration
  • ๐Ÿ”‹ Zero allocations
  • ๐Ÿงผ Memory zeroization

Designed For ๐ŸŽฏ

  • Real-time data streaming (sensors, network packets)
  • Interrupt-safe logging
  • Lock-free inter-thread communication
  • Embedded systems (no_std)
  • High-throughput data pipelines

Quick Start ๐Ÿš€

use ourobuf::OuroBuffer;

fn main() -> Result<(), ourobuf::OuroBufferError> {
    // Create 256-byte buffer
    let buf = OuroBuffer::<256>::new();

    // Write data
    buf.push(b"Hello")?;

    // Read data
    let mut output = [0u8; 5];
    let read = buf.pop(&mut output);

    assert_eq!(&output[..read], b"Hello");
    Ok(())
}