ublk-cpp is a C++ library for writing ublk servers, targeting the C++26 std::execution sender model:
-
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 io_uring operations can be used directly inside your ublk server.
-
C++26 Sender Model The API is built on
std::executionsenders — composable with standard algorithms and interoperable with any asynchronous driver.
Note
This repository is experimental and will not reach a stable state until
std::execution (C++26) is finalized.
- Online Docs (GitHub Pages)
- User Guide: Step-by-step introduction to ublk-cpp's concepts and usage.
- Building and Usage: How to build and integrate ublk-cpp in your project.
- Examples: Practical ublk-cpp code samples.
- For questions, bug reports, or feature requests, please open an issue.
- Pull requests are welcome!