Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork282
Lightweight generic ring buffer manager library
License
NotificationsYou must be signed in to change notification settings
MaJerle/lwrb
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Library provides generic FIFO ring buffer implementation.
Read first:Documentation
- 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
Fresh contributions are always welcome. Simple instructions to proceed:
- Fork Github repository
- FollowC 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
About
Lightweight generic ring buffer manager library
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.