SkillAgentSearch skills...

Lwrb

Lightweight generic ring buffer manager library

Install / Use

/learn @MaJerle/Lwrb
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Lightweight ring buffer manager

Library provides generic FIFO ring buffer implementation.

<h3>Read first: <a href="http://docs.majerle.eu/projects/lwrb/">Documentation</a></h3>

Features

  • Written in C (C11), compatible with size_t for size data types
  • Platform independent default code - with restrictions for smaller CPU architectures (< sizeof(size_t))
  • FIFO (First In First Out) buffer implementation
  • No dynamic memory allocation, data is static array
  • Uses optimized memory copy instead of loops to read/write data from/to memory
  • Thread safe when used as pipe with single write and single read entries - when CPU read/write operation for size_t are single instruction (ARM Cortex-M for instance)
  • Interrupt safe when used as pipe with single write and single read entries - when CPU read/write operation for size_t are single instruction (ARM Cortex-M for instance)
  • For CPU systems with smaller architecture than sizeof(size_t) (AVR for instance), atomic protection is required for read-write operation of buffer writes
  • Suitable for DMA transfers from and to memory with zero-copy overhead between buffer and application memory
  • Supports data peek, skip for read and advance for write
  • Implements support for event notifications
  • User friendly MIT license

Contribute

Fresh contributions are always welcome. Simple instructions to proceed:

  1. Fork Github repository
  2. Follow C style & coding rules already used in the project
  3. Create a pull request to develop branch with new features or bug fixes

Alternatively you may:

  1. Report a bug
  2. Ask for a feature request
View on GitHub
GitHub Stars1.4k
CategoryDevelopment
Updated11h ago
Forks326

Languages

C

Security Score

100/100

Audited on Mar 27, 2026

No findings