opendal icon indicating copy to clipboard operation
opendal copied to clipboard

Tracking Issue: Async support for C++ binding

Open PragmaTwice opened this issue 1 year ago • 1 comments

Feature Description

Related to #2981, #3156.

Problem and Solution

We can add async support for C++ binding since C++20 coroutine is already a widely-used feature.

By utilizing cxx-async lib, we can generate interop code between Rust async/await and C++20 coroutines.

For C++ coroutine runtimes, cxx-async currently supports cppcoro and folly. We can further add support of asio and (maybe) libunifex, since asio is the de-facto networking lib and libunifex is the impl of std::execution which will be merged into c++26? (29? 32?).

For other coroutines (mostly stackful coroutine libs), like Boost.Fiber, Boost.Coroutine2, currently it's out of our interest.

Additional Context

  • [ ] #5195
  • [ ] docs support
  • [ ] async reader/lister support
  • ...

Are you willing to contribute to the development of this feature?

  • [X] Yes, I am willing to contribute to the development of this feature.

PragmaTwice avatar Oct 17 '24 06:10 PragmaTwice