Boost logo

Boost :

From: Thomas Fowlery (thomas.fowlery.yes_at_[hidden])
Date: 2024-08-13 09:36:22


Hi all,

I'm planning to start working on a new Web3 project and I'm trying to
decide how I should approach doing concurrency with C++ and Boost.

It seems like using callback-passing style with Asio has been pretty
popular historically. However, having worked with other modern languages
with first-class async support, this feels a bit primitive.

I've heard about C++20 coroutines and it seems like Boost has a library for
it (Cobalt). However, it's relatively new, so I'm curious if anyone had
experience with it and is it mature for production. I see that Asio also
has coroutine support, so what's the difference?

The third option I'm considering is using fibers. I like this option in
principle because the resulting code is very clean and looks like normal
synchronous code. However, I haven't seen many big examples/projects using
Boost.Fiber with Boost.Asio. Is this something people are doing out in the
wild? Does Asio support Fibers well?

Best regards,
Thomas


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk