LwRB |version| documentation ============================ Welcome to the documentation for version |version|. LwRB is a generic *FIFO* (First In; First Out) buffer library optimized for embedded systems. .. image:: static/images/logo.svg :align: center .. rst-class:: center .. rst-class:: index_links :ref:`download_library` :ref:`getting_started` `Open Github `_ `Donate `_ 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 Requirements ^^^^^^^^^^^^ * C compiler * Less than ``1kB`` of non-volatile memory Contribute ^^^^^^^^^^ Fresh contributions are always welcome. Simple instructions to proceed: #. Fork Github repository #. Respect `C style & coding rules `_ used by the library #. Create a pull request to ``develop`` branch with new features or bug fixes Alternatively you may: #. Report a bug #. Ask for a feature request Example code ^^^^^^^^^^^^ Minimalistic example code to read and write data to buffer .. literalinclude:: examples_src/example_index.c :language: c :linenos: :caption: Example code License ^^^^^^^ .. literalinclude:: ../LICENSE Table of contents ^^^^^^^^^^^^^^^^^ .. toctree:: :maxdepth: 2 :caption: Contents self get-started/index user-manual/index tips-tricks/index api-reference/index .. toctree:: :maxdepth: 2 :caption: Other projects :hidden: LwDTC - DateTimeCron LwESP - ESP-AT library LwEVT - Event manager LwGPS - GPS NMEA parser LwGSM - GSM-AT library LwJSON - JSON parser LwMEM - Memory manager LwOW - OneWire with UART LwPKT - Packet protocol LwPRINTF - Printf LwRB - Ring buffer LwSHELL - Shell LwUTIL - Utility functions