killeder / lwrb

Lightweight generic ring buffer manager library

Home Page:https://majerle.eu/projects/lwrb-lightweight-ring-buff

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lightweight ring buffer manager

Library provides generic FIFO ring buffer implementation.

Read first: Documentation

Features

  • Written in ANSI C99, compatible with size_t for size data types
  • Platform independent, no architecture specific code
  • 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
  • Interrupt safe when used as pipe with single write and single read entries
  • 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. Respect C style & coding rules used by the library
  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

About

Lightweight generic ring buffer manager library

https://majerle.eu/projects/lwrb-lightweight-ring-buff

License:MIT License


Languages

Language:C 90.6%Language:CMake 9.3%Language:Shell 0.1%