Implementation of Arduino's Stream class which use internal ring buffers to emulate a pair of connected Streams or a Loopback Stream. It can be used to easily add a buffering layer to communications, to implement the communication between multiple components, or to make Serial-like objects.