Awesome
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:
- Fork Github repository
- Follow C style & coding rules already used in the project
- Create a pull request to develop branch with new features or bug fixes
Alternatively you may:
- Report a bug
- Ask for a feature request