Yet Another Ring Buffer ======================= SPSC channel backed by a ring buffer. The channel is optimized for sending and receiving bytes - it has several features allowing to produce and consume items in bulk. This makes it suitable for implementing an intra-process pipe stream. However it may be used with other types as well. Features include: * Lock free, non-blocking push and pop, with no allocation and O(1) time. * If desired, can integrate blocking, futures-based, or custom waiting. If undesired, no-op waiters add no overhead. * `view` functions for safely accessing the buffer directly, ex. for doing IO directly from or to the buffer. * `no_std` compatible (currently requires `alloc`) Does not support: * Multiple producers or consumers. The view API would make this challenging. If you don't mind a lack of concurrency, you can wrap the ends in a `Mutex` though. * Dynamic resizing