<div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 31, 2020 at 23:22 Tobias Hieta <<a href="mailto:tobias@plexapp.com">tobias@plexapp.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">Hello,<br><br><br><br>I have only negative experiences with cpp-netlib - I would not recommend it.</blockquote><div dir="auto"><br></div><div dir="auto">Can you elaborate on those negative experiences? I think that would be helpful in comparing it to the other alternatives.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)" dir="auto"><br><br><br>If the discussion was around only the client part I think libcURL<br><br>would be the best option since it's available everywhere and is a well<br><br>maintained library. But as you mention it's only the client part.</blockquote><div dir="auto"><br></div><div dir="auto">Yeah, I thought the same going through the list.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)" dir="auto"></blockquote><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)" dir="auto"><br><br>We use pion (<a href="https://github.com/splunk/pion" rel="noreferrer" target="_blank">https://github.com/splunk/pion</a>) to build a HTTP server<br><br>interface, but since it seems pretty unmaintained I am not sure I<br><br>would recommend it.<br><br><br><br>I have heard good things about <a href="https://github.com/matt-42/lithium/" rel="noreferrer" target="_blank">https://github.com/matt-42/lithium/</a> but<br><br>have no direct experience of using / building it.<br><br><br><br>Thanks,<br><br>Tobias<br><br><br><br>On Tue, Sep 1, 2020 at 2:22 AM Petr Hosek via llvm-dev<br><br><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br><br>><br><br>> These are the ones I found so far:<br><br>><br><br>> * [libmicrohttpd](<a href="https://www.gnu.org/software/libmicrohttpd/" rel="noreferrer" target="_blank">https://www.gnu.org/software/libmicrohttpd/</a>) is used by elfutils' debuginfod, but it's LGPL licensed.<br><br>> * [libcURL](<a href="https://curl.haxx.se/libcurl/" rel="noreferrer" target="_blank">https://curl.haxx.se/libcurl/</a>) would be an option for the client, but we'd need a different library for the server.<br><br>> * [libhttp](<a href="https://github.com/lammertb/libhttp" rel="noreferrer" target="_blank">https://github.com/lammertb/libhttp</a>) is another MIT licensed library that could be a fit, but it seems bigger and more featureful than httplib.<br><br>> * [cpprestsdk](<a href="https://github.com/microsoft/cpprestsdk" rel="noreferrer" target="_blank">https://github.com/microsoft/cpprestsdk</a>) has a lot of extra features we don't need, like websockets.<br><br>> * [pistache](<a href="https://github.com/oktal/pistache" rel="noreferrer" target="_blank">https://github.com/oktal/pistache</a>) similarly has additional features and dependencies that are likely unnecessary.<br><br>> * [crow](<a href="https://github.com/ipkn/crow" rel="noreferrer" target="_blank">https://github.com/ipkn/crow</a>) is similar to cpprestsdk and pistache, it depends on Boost.<br><br>> * [cpp-netlib](<a href="https://github.com/cpp-netlib/cpp-netlib" rel="noreferrer" target="_blank">https://github.com/cpp-netlib/cpp-netlib</a>) looks nice but depends on Boost.<br><br>> * [proxygen](<a href="https://github.com/facebook/proxygen" rel="noreferrer" target="_blank">https://github.com/facebook/proxygen</a>) is also nice but has a lot of dependencies including Boost.<br><br>><br><br>> On Mon, Aug 31, 2020 at 4:48 PM Jonas Devlieghere <<a href="mailto:jonas@devlieghere.com" target="_blank">jonas@devlieghere.com</a>> wrote:<br><br>>><br><br>>> On Mon, Aug 31, 2020 at 4:38 PM Petr Hosek via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br><br>>>><br><br>>>> There are several options, I've looked at couple of them and the one I like the most so far is <a href="https://github.com/yhirose/cpp-httplib" rel="noreferrer" target="_blank">https://github.com/yhirose/cpp-httplib</a> for a few reasons:<br><br>>>><br><br>>>> * It's MIT licensed.<br><br>>>> * It supports Linux, macOS and Windows (and presumably other platforms).<br><br>>>> * It doesn't have any dependencies, it can optionally use zlib and OpenSSL.<br><br>>>> * It's a modern C++11 implementation, the entire library is a single header.<br><br>>><br><br>>><br><br>>> This looks appealing indeed. Out of curiosity, what are the other alternatives you considered?<br><br>>><br><br>>>><br><br>>>><br><br>>>> On Mon, Aug 31, 2020 at 4:31 PM Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>> wrote:<br><br>>>>><br><br>>>>> +LLDB Dev as well for visibility. +Pavel Labath since he and I have talked about such things.<br><br>>>>><br><br>>>>> On Mon, Aug 31, 2020 at 7:26 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br><br>>>>>><br><br>>>>>> [+debug info folks, just as FYI - since the immediate question's more about 3rd party library deps than the nuances of DWARF, etc]<br><br>>>>>><br><br>>>>>> I'd imagine avoiding writing such a thing from scratch would be desirable, but that the decision might depend somewhat on what libraries out there you/we would consider including, what their licenses and further dependencies are.<br><br>>>>>><br><br>>>>>> On Mon, Aug 31, 2020 at 4:22 PM Petr Hosek via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br><br>>>>>>><br><br>>>>>>> We're considering implementing [debuginfod](<a href="https://sourceware.org/elfutils/Debuginfod.html" rel="noreferrer" target="_blank">https://sourceware.org/elfutils/Debuginfod.html</a>) library in LLVM. Initially, we'd like to start with the client implementation, which would enable debuginfod support in tools like llvm-symbolizer, but later we'd also like to provide LLVM-based debuginfod server implementation.<br><br>>>>>>><br><br>>>>>>> debuginfod uses HTTP and so we need an HTTP library, ideally one that supports both client and server.<br><br>>>>>>><br><br>>>>>>> The question is, would it be acceptable to use an existing C++ HTTP library or would it be preferred to implement an HTTP library in LLVM from scratch?<br><br>>>>>>> _______________________________________________<br><br>>>>>>> LLVM Developers mailing list<br><br>>>>>>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br><br>>>>>>> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br><br>>>><br><br>>>> _______________________________________________<br><br>>>> LLVM Developers mailing list<br><br>>>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br><br>>>> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br><br>><br><br>> _______________________________________________<br><br>> LLVM Developers mailing list<br><br>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br><br>> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br><br></blockquote></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Sent from my iPhone</div>