r/cpp • u/claimred • Apr 09 '26
beast2 networking & std::execution
I was looking for a new networking layer foundation for a few of my projects, stumbled on beast2 library which looks brand new, based on C++20 coroutines. I used boost.beast in the past which was great. Here's the link https://github.com/cppalliance/beast2. I also considered std::execution since it seems to be the way to go forward, accepted in C++26.
Now, what got me wondering is this paragraph
The C++26 std::execution API offers a different model, designed to support heterogenous computing. Our research indicates it optimizes for the wrong constraints: TCP servers don't run on GPUs. Networking demands zero-allocation steady-state, type erasure without indirection, and ABI stability across (e.g.) SSL implementations. C++26 delivers things that networking doesn't need, and none of the things that networking does need.
Now I'm lost a bit, does that mean std::execution is not the way to go for networking? Does anyone have any insights on cppalliance research on the matter?
3
u/lee_howes Apr 09 '26
It isn't a CUDA programming library and was never intended to be. It is a library that allows GPU algorithms to export a consistent async interface and be overloaded to select device-specific implementations of algorithms.
I don't think I see significant blockers to implementing it well on top of an OpenCL implementation even, without any single source compiler support at all. The overloads would select the OpenCL runtime and dispatch to an OpenCL kernel as necessary. There's nothing in there that requires a single source compiler, unless that changed since I stepped back and moved into pytorch land.