libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] Question on Async support


From: Santos Das
Subject: Re: [libmicrohttpd] Question on Async support
Date: Fri, 24 Aug 2018 19:42:21 +0530

Hi,

Thanks for the prompt reply. I have few more questions., kindly see if you could help.

a. Does this have a transaction scoreboarding capability (e.g., to match up asynchronous operations)?   The use of the passed argument *cls seems to imply this?   That is, when you get an inbound transation you allocate a tracking object in application space and hand its pointer to libhttpd so that it can give it back to you later (i.e., you are giving the response and it asynchronously asks for the next chunk of bytes in the response).

b. Does it support chunk-encoding of responses?

c. Does MHD has inbuilt JSON encode/decode capabilities ?

Thanks, Santos


On Fri, Aug 24, 2018 at 5:28 AM, Christian Grothoff <address@hidden> wrote:
On 08/23/2018 09:09 PM, Santos Das wrote:
> Hi,
>
> Thanks a lot. Is there any significant performance impact when it runs
> in this mode ?

Not inherently, but you don't get the thread-pool feature that way (at
least not without quite a bit of work by you!).  My real
high-performance setups use the thread pool (because my application
logic requires some CPU time, not so much for MHD), but of course you
could hack up your own.  But just FYI: that's not trivial.

> Has anyone compared its performance against "mongoose " ?

I'm not aware of a direct 1:1 comparison, but as I said, it is very hard
to benchmark the HTTP logic itself.

> I''m evaluating a http library for my C++ based application
> microservices .  I am evaluating libraries that can provide our C++
> workers with native HTTP capabilities. 
>
>
> I’m defining native as:
>
>   * No additional threads other than those spawned by the application
>     when it chooses to use blocking calls (entirely optional)
>   * No additional queueing
>   * Native sockets interface with full use of listen, accept, bind,
>     connect, recv, send.
>
>
> Do you think libmicrohttpd is the best choice or is there any better
> alternatives for me ?

Well, we have a list of alternatives on the MHD web site. But naturally
few people on this list would think they are as useful for _their_
usecases. ;-)

Note that there is some C++ wrapper around MHD here:
 https://github.com/etr/libhttpserver

But I don't know if it is any good (never tried).

Happy hacking!

Christian



reply via email to

[Prev in Thread] Current Thread [Next in Thread]