Skip to content

Runtime for lightweight user-space threads (tasks) in C++

License

Notifications You must be signed in to change notification settings

andydunstall/puddle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Runtime for lightweight user-space threads (tasks) in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published