curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

Re: Async thoughts

From: Stefan Eissing via curl-library <>
Date: Tue, 16 Jul 2019 12:31:03 +0200

Feedback as one of the more recent multi-users:
- once I read the documentation, it was quite easy to figure out X-)
- I find the way of stuffing several easy things into one multi quite intuitive.
- there are several use scenarios that can be described as "async"
  * mine was a pretty simple one where libcurl is selecting itself and there are no handles from somewhere else to watch
  * I therefore cannot speak on how easy it is to integrate curl handles into your own select/poll/whatever

As a related, but slightly different thought:
- the API offered by libnghttp2 has one important feature: it does not do IO itself
- it could be an idea to offer a curl API that gets fed with chunks of data to process and hands out other chunks to send.
- this would decouple big parts of curl from socket/file handles and would let applications use whatever fits them best
  (of course, the existing API should stay)

My quick, off the hip, thoughts about this...

Cheers, Stefan

> Am 16.07.2019 um 12:07 schrieb Daniel Stenberg via curl-library <>:
> Hi team,
> Recently I've talked to some users who, independently of each other, have brought up or touched the idea of (easier) async transfers with libcurl.
> The easy interface is fine and yeah, easy, but synchronous, and the multi interface is powerful and non-blocking and all but not always very easy to "just do async" with.
> Is there a way and a "need" for easier async with libcurl? If so, how should the API for this work?
> Is there an existing async API somewhere that's good or useful that we can learn from or be inspired by?
> If your dream async API came true, how would it work?
> The probably most basic way I can think of is firing off a separate thread with the "start transfer" call and then have have a way to probe how the transfer is going and finally a way to signal the completion of the transfer.
> Thoughts?
> --
> / | Get the best commercial curl support there is - from me
> | Private help, bug fixes, support, ports, new features
> |
> -------------------------------------------------------------------
> Unsubscribe:
> Etiquette:

Received on 2019-07-16