Skip to content

Don't take on too much. #201

@kelbon

Description

@kelbon

The very emergence of a modern and understandable alternative to Boost Asio is wonderful. But it seems this library takes on too much.
It should provide a platform-independent interface to sockets, timers, TLS and task queues (IO context), with possibility to implement io_context for my own platform

But don't cross the line of creating a framework. For example, it's important to use awaiters/callbacks everywhere, not coroutines. Boost Asio added its own (awaitable) poorly written coroutines, and that was a mistake. Coroutines can easily be added on top of regular callbacks (even in Boost Asio itself).

I haven't fully examined the entire library yet, but I can already see TCP Server (which I think is redundant) and Capy with its coroutines and framework logic - stop tokens, coroutine scheduling on executors, etc.

It's important to separate the low-level interface from the framework. I'm speaking from experience

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions