Safe shared memory IPC with ring buffer

Hello everyone!

I'd like to ask about shared memory IPC -- are there any crates/libraries implementing one-way single-producer-single-consumer ring buffer? (there are libraries providing wrappers around mmap() and similar, but they simply provide pointers to memory-mapped file, which should be used carefully to avoid memory-unsafety). It can be a Rust crate or C/C++ library to use through FFI. On Linux, there is a feature that uses communication between user process and operating system kernel through ring buffer in shared memory, called io_uring (for asynchronous I/O), with Rust user-space crates such as io_uring and tokio_uring, but I'd like something for communication between user-space processes.

Have a look at iceoryx2 and some benchmarks comparing it to shared memory and memory-mapped IPC.