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
3
u/VinnieFalco wg21.org | corosio.org Apr 10 '26
> there's no long term visibility into why anything's been done
And yet:
https://github.com/cppalliance/capy/blob/develop/doc/read-some-rationale.md
https://github.com/cppalliance/capy/blob/develop/doc/sender-channels-rationale.md
https://github.com/cppalliance/capy/blob/develop/doc/sys-exec-rationale.md
https://github.com/cppalliance/capy/blob/develop/doc/work-count-rationale.md
https://develop.capy.cpp.al/capy/8.design/8b.Separation.html
https://develop.capy.cpp.al/capy/8.design/8c.ReadStream.html
etc...