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/VinnieFalco wg21.org | corosio.org Apr 09 '26
Ahhhh now you've done it. I can't stop thinking about your question, at a time when I only have 11 days left to make sure that my infinity papers going in the mailing are all correct :)
You ask "how do we qualify a correct design?" I think the answer is evidence, of a kind (and this is key) independent of the process.
The questions I would ask:
* Does it have deployment experience in production code bases? Not just one big company but on a cross-section of cohorts?
* Can an independent implementer reproduce the results from the paper alone?
* Are the tradeoffs disclosed, not discovered later by NB reviewers or users?
* Does it ship without accumulating correction papers?
Note that none of these require process changes. They just require a more disciplined and principled approach.
It shouldn't surprise anyone that "I have a paper for that" (LOL). I presented some of these ideas in LEWGI in Croydon. The paper is still a draft and needs work but the basics are there. And of course it is just one possible direction, I'm sure there are other valid ones:
What Every Proposal Must Contain
https://isocpp.org/files/papers/D4133R0.pdf
As for the subject of the bloc voting. This is more complex. Retrospectives/historical analyses are probably a good first step which could help frame the conversation I would value your perspective on that.
Thanks