Version 1.0.0
[Summary]
StormByte Buffer is the byte-buffer module of the StormByte C++ suite.
It depends on StormByte Base and optionally StormByte Logger. This repository is not Base, Config, Crypto, Database, Logger, Multimedia, Network or System.
Public headers under StormByte/buffer/ cover FIFO, SharedFIFO, Ring, Producer/Consumer, Bridge and Pipeline.
If you landed here from a release link and have not read the tree:
- What this module is, how to build it, and short examples: README.md
- License: GNU Lesser General Public License version 3 or later, LICENSE
Initial public release of StormByte Buffer.
Added
- Hierarchical interfaces:
Generic,ReadOnly,WriteOnly,ReadWrite FIFO— grow-on-demand byte buffer (single-threaded)SharedFIFO— thread-safe FIFO with blocking reads/extractsRing— concurrent ring (shared_mutex, many-to-many)Producer/Consumer— write/read handles overRingExternalReader/ExternalWriter— I/O adaptersBridge— chunked passthrough with optional flush-on-destroyPipelinewithExecutionMode:Sync,Async,Parallel(combinable)- Private
LockFreeRing— SPSC intermediates between pipeline stages - Lifecycle:
Close(),SetError(),EoF(),IsReadable(),IsWritable() - Non-destructive
Read/Peekand destructiveExtract, plus*UntilEoF - Seek, Drop, Clean, Clear, HexDump
- Unit tests (FIFO, SharedFIFO, Ring, Producer/Consumer, Bridge, Pipeline)
- Project version read from the
VERSIONfile - CMake 3.28 floor
Notes
FIFOis not thread-safe; useSharedFIFOorRingfor concurrent access.LockFreeRingis private and only safe under single-producer / single-consumer use.- Pipeline stages must
out.Close()orout.SetError()when finished. - Needs a C++26 compiler and StormByte Base ≥ 1.0.0.