# Stream Buffer vs. Message Buffer

**URL:** <https://forums.freertos.org/t/stream-buffer-vs-message-buffer/16723>\
**Category:** Kernel\
**Created:** [February 9, 2023, 3:52pm UTC](https://forums.freertos.org/t/stream-buffer-vs-message-buffer/16723 "2023-02-09T15:52:48Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![richard-damon](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/richard-damon/32/38_2.png) [@richard-damon](https://forums.freertos.org/u/richard-damon)\
**Post date:** [February 9, 2023, 4:22pm UTC](https://forums.freertos.org/t/stream-buffer-vs-message-buffer/16723/2 "2023-02-09T16:22:48Z")

</div>

Data is put into a Stream Buffer as a series of bytes and removed as a similar series. The “beginning” or “End” of a particular “Message” that is added to the buffer isn’t kept track of.

When you read out, you tell the buffer the maximum amount you can take, and the minimum you want to take (the trigger level), and if that much isn’t there, to wait a bit for more.

A Message Buffer puts the message into the buffer as a unified whole. You can only get one message off the buffer at a time, and only a whole message at a time.

You can think of Message Buffer as a Queue with a variable size object, where you can put/get one object per call (but the Buffer might be able to hold a number of messages).

A Stream Buffer is a Queue with a fixed 1 byte message, but you can put/get a series of them with each call.

---

_[View the full topic](https://forums.freertos.org/t/stream-buffer-vs-message-buffer/16723)._
