fuse-over-io-uring uses io-uring for transport of kernel/userspace
messages. See also https://docs.kernel.org/filesystems/fuse-io-uring.html

In order to enable it, the kernel module needs to have it enabled:
echo 1 > /sys/module/fuse/parameters/enable_uring

Additionally, FUSE_CAP_OVER_IO_URING needs to be set and
se->uring.enable has to be true. The latter can be
achieved with the libfuse option '-o io_uring'.

Default queue-depth is 8 and can be changed with the parameter
'-oio_uring_q_depth'.

As of now there is always one queue per core. A reduced number
of cores in development.

Benefits:
- Improved performance by using io_uring for kernel/userspace communication
- Reduced system call overhead compared to traditional FUSE
- Asynchronous I/O operations

Usage:
To enable io_uring support when mounting a FUSE filesystem:
1. Enable kernel support: echo 1 > /sys/module/fuse/parameters/enable_uring
2. Mount with io_uring option:    -o io_uring
3. Optionally adjust queue depth: -o io_uring_q_depth=<depth>

Example:
./my_fuse_fs /source /mountpoint -o io_uring -o io_uring_q_depth=16

Requirements:
- Linux kernel with io_uring and FUSE io_uring support enabled
- libfuse compiled with io_uring support

Build Dependencies:
- liburing (for io_uring support)
- libnuma (required alongside liburing)
- meson build system with option: -Denable-io-uring=true
