Hi, Thanks a lot. Is there any significant performance impact when it runs in this mode ?
Has anyone compared its performance against "mongoose " ? 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 ? Please advise. thanks, santos On Fri, Aug 24, 2018 at 12:15 AM, silvioprog <[email protected]> wrote: > Hello Santos. > > Yes, you can use your own main loop. Please see: > > "*The fourth threading model (used when no specific flag is given), uses > no threads. Instead, the main application must (periodically) request file > descriptor sets from MHD, perform a select call and then call MHD_run. > MHD_run will then process HTTP requests as usual and return. MHD_run is > guaranteed to not block; however, access handlers and response processing > callbacks that it invokes may block. This mode is useful if a > single-threaded implementation is desired and in particular if the main > application already uses a select loop for its processing.*" More ... > <https://www.gnu.org/software/libmicrohttpd/> > > Enjoy MHD! ☺ > > On Thu, Aug 23, 2018 at 3:36 PM Santos Das <[email protected]> wrote: > >> Hi, >> >> Thank you for the quick reply. I have one more question, please help in >> clarifying - >> >> Can "libmicrohttpd" run as a part of the application event loop or is it >> *mandatory >> *for the "libmicrohttpd" to have its own event loop? >> >> thanks, santos >> >> On Thu, Aug 23, 2018 at 11:58 PM, Christian Grothoff <[email protected] >> > wrote: >> >>> On 08/23/2018 06:21 PM, Santos Das wrote: >>> > Hi, >>> > >>> > Can anyone please confirm if libmicrohttpd supports the Async handling? >>> >>> Yes, it supports asynchronous processing. >>> >>> > Also, any information on the performance of libmicrohttps will be >>> useful. >>> >>> Let's just say if used properly, it will never be anywhere near the >>> bottleneck. We know people running 100,000 requests/s on a single system >>> with MHD years ago. Quite likely to do more today, but very difficult to >>> test: when benchmarking, you will always be benchmarking your clients, >>> your network or your application logic long before hitting any MHD >>> threshold (on sane operating systems). >>> >>> >> > > -- > Silvio Clécio >
