On Sat, Jun 27, 2026 at 5:23 PM Peter Dimov via Boost <boost@lists.boost.org> wrote:
Both coroutine support and buffer sequence manipulation are foundational for Corosio (and it's not really possible to omit either), so for me both clearly belong in Capy.
Streams (and the read/write algorithms) are theoretically possible to omit, but doing so will be a disservice to users and if we do that, it will very likely lead to pressure to add read/write as socket methods.
This surfaces a recurring issue. If you recall, I had this broken up into 6 libraries. Buffers was separate, I forget what the other subdivisions were. A common complaint is that Boost is too large. And people want just some parts without the whole thing. And then we have the desire to not have too many dependencies. In principle buffers and streams should be 2 separate libraries from IoAwaitable. Buffers you can use without either of the other two. IoAwaitable could be used without buffers and streams, which covers Rainer's case. What is the right split? I'm comfortable with how we have it now, Capy and Corosio, but this reflects a political tradeoff instead of being purely technical. Thanks