Skip to content

Latest commit

 

History

History
54 lines (35 loc) · 1.3 KB

README.md

File metadata and controls

54 lines (35 loc) · 1.3 KB

Puddle

Puddle is a runtime for lightweight user-space threads (tasks) in C++. It includes a library for I/O based on io_uring.

Build

Prerequisites

Bazel

Puddle is built using Bazel.

The easiest option for installing Bazel is using bazelisk, which automatically picks and installs the correct Bazel version.

Boost

Puddle depends on Boost, specifically Boost Context.

The easiest option to install Boost is with:

$ sudo apt-get install libboost-all-dev

liburing

Puddle depends on liburing.

The easiest option to install liburing is with:

$ sudo apt-get install liburing-dev

Build

Build all Puddle libraries and examples with:

$ bazel build //...

Examples

See examples.

⚠️ Limitations

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).