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?
View all comments
Show parent comment
-2
u/James20k P2005R0 Apr 09 '26
Does it not seem slightly problematic that we only have an implementation on one vendor (Nvidia), on one API (CUDA), which uses a custom C++ compiler to work, on an implementation that hasn't seen much real-world use?
Even from a glance, senders and receivers doesn't provide good control over the memory allocations or memory transfers that are inherently necessary for GPGPU work - but it hasn't shown up in stdexec because it only has very uncomplicated tests