Puddle is a runtime for lightweight user-space threads (tasks) in C++. It
includes a library for I/O based on io_uring
.
Puddle is built using Bazel.
The easiest option for installing Bazel is using bazelisk, which automatically picks and installs the correct Bazel version.
Puddle depends on Boost, specifically Boost Context.
The easiest option to install Boost is with:
$ sudo apt-get install libboost-all-dev
Puddle depends on liburing.
The easiest option to install liburing
is with:
$ sudo apt-get install liburing-dev
Build all Puddle libraries and examples with:
$ bazel build //...
See examples
.
Puddle is only a toy project to learn about and experiment with io_uring
, so
isn't built for production. It only supports Linux.
Puddle doesn't yet support message passing or communication between OS threads. Instead the 'runtime' only supports a single OS thread (though you can run independent runtimes on different threads).