ublk-cpp is an intuitive, highly extensible C++ library for writing ublk servers:
Comprehensive ublk Support Full coverage of the ublk userspace interface — device lifecycle management, per-queue I/O loops, and advanced features such as user recovery and shm buffer registration.
Full io_uring Ecosystem Built on top of Condy, all kinds of io_uring async operations — send/recv, read/write, and more — can be used directly and intuitively inside your ublk server.
C++26 Sender Model The API is built on std::execution senders — handlers are ordinary senders that compose with standard algorithms and can interoperate with any asynchronous driver.
Note
This repository is experimental and will not reach a stable state until std::execution (C++26) is finalized.