Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Differences between circular/ring buffer libraries in the SDK

Hi,

I was wondering what are the main differences between the different libraries included in the SDK that are meant to be implementations of ring buffers. I'm talking specifically about the differences between the FIFO library, the queue library and the ringbuf library. I don't know if there are more.

I'm interested in pros and cons of each library, whether they have different purposes and if there are some considerations to take when using one or the other.

The only differences I'm aware of are that the queue library has support for specific data types (objects), the FIFO library is only for "bytes" and the ringbuf library is somehow "more efficient" (?).

Related